slitaz-vz rev 2
Add stuff for templates
author | Eric Joseph-Alexandre <erjo@slitaz.org> |
---|---|
date | Tue Nov 01 09:23:49 2011 +0100 (2011-11-01) |
parents | d7f371bbe726 |
children | 7af7c96012c3 |
files | base-scripts/Makefile.vz base-scripts/kernel_migrate.sh base-scripts/local.sh base-scripts/network.sh base-scripts/rc.network base-scripts/rcS base-scripts/setup base-scripts/vz base-scripts/vzconf.sh |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/base-scripts/Makefile.vz Tue Nov 01 09:23:49 2011 +0100 1.3 @@ -0,0 +1,45 @@ 1.4 +# Build Slitaz template for OpenVZ 1.5 +# 1.6 +# 2011/01 Eric Joseph-Alexandre <erjo@slitaz.org> - 1.7 +# Publish under GNU General Public License. 1.8 + 1.9 +MIRROR+=http://mirror.slitaz.org/iso/ 1.10 +VERSION+=3.0 1.11 +FLAVOR+=base 1.12 +SRC+=./777 1.13 +TMP+=/tmp 1.14 + 1.15 +all: 1.16 + 1.17 + 1.18 +template: prepare tar-gz 1.19 + 1.20 +prepare: 1.21 + @rm -rf $(SRC)/lib/modules 1.22 + 1.23 + # Set mtab config 1.24 + rm -f $(SRC)/etc/mtab 1.25 + ln -s /proc/mounts $(SRC)/etc/mtab 1.26 + 1.27 + # Set fstab config 1.28 + echo '# /etc/fstab: in VE file system.' > $(SRC)/etc/fstab 1.29 + echo '#' >> $(SRC)/etc/fstab 1.30 + echo 'proc /proc proc defaults 0 0' >> $(SRC)/etc/fstab 1.31 + echo 'devpts /dev/pts devpts defaults 0 0' >> $(SRC)/etc/fstab 1.32 + 1.33 + # Disable root login 1.34 + sed -i '/^root.*/root:!:13525:0:99999:7:::/' $(SRC)/etc/shadow 1.35 + 1.36 + # Disable tty 1.37 + sed -i 's/^tty/#tty/' $(SRC)/etc/shadow 1.38 + 1.39 + 1.40 +tar-gz: 1.41 + cd $(SRC) ; tar cvzf $(TMP)/slitaz-$(FLAVOR)-$(VERSION).tar.gz . 1.42 + 1.43 +download: 1.44 + cd $(SRC) 1.45 + 1.46 + 1.47 + 1.48 +.PHONY: prepare template download
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/base-scripts/kernel_migrate.sh Tue Nov 01 09:23:49 2011 +0100 2.3 @@ -0,0 +1,36 @@ 2.4 +#!/bin/sh 2.5 +# 2.6 + 2.7 +KVER=2.6.32 2.8 +PREFIX=ovzkernel- 2.9 +SUFFIX= 2.10 +EXTRAVERSION=-i686 2.11 + 2.12 + 2.13 +for i in linux-* 2.14 +do 2.15 + if [ ! -d ${PREFIX}$(echo ${i##linux-})${SUFFIX} ]; then 2.16 + cp -pa $i ${PREFIX}$(echo ${i##linux-})${SUFFIX} 2.17 + sed -i -e "s/PACKAGE=.*/PACKAGE=\"${PREFIX}$(echo ${i##linux-})\"/" \ 2.18 + -e "s/VERSION=.*/VERSION=\"${KVER}\"/" \ 2.19 + -e "s/DEPENDS.*/DEPENDS=\"${PREFIX%%-}\"/" \ 2.20 + -e "s/WANTED=.*/WANTED=\"${PREFIX%%-}\"/" \ 2.21 + -e "s/\(WEB_SITE.*\)/\1\nEXTRAVERSION=\"${EXTRAVERSION}\"/" \ 2.22 + -e "s/\(EXTRA.*\)/\1\nSOURCE=\"linux\"/" \ 2.23 + -e "s!\(local path\)!\1\n\tsrc=\$WOK/\$WANTED/\$SOURCE-\$VERSION\n\t_pkg=\$WOK/\$WANTED/\$SOURCE-\$VERSION/_pkg\n\tKERNELRELEASE=\$( cat \$src/include/config/kernel.release 2> /dev/null)!" \ 2.24 + -e "s!slitaz/list_modules.sh!\OpenVZ/list_modules.sh \${KERNELRELEASE}!" \ 2.25 + -e "s/\$VERSION-slitaz/\${KERNELRELEASE}/" \ 2.26 + -e "s/depmod -a \$VERSION-slitaz/depmod -a \${KERNELRELEASE}/" \ 2.27 + ${PREFIX}$(echo ${i##linux-})${SUFFIX}/receipt 2.28 + 2.29 + sed -i '/chroot/ { 2.30 + i\KERNELRELEASE=$(cat $1\/etc\/ovzkernel\/kernel\.release) 2.31 + }' ${PREFIX}$(echo ${i##linux-})${SUFFIX}/receipt 2.32 + 2.33 + sed -i '/\tdepmod/ { 2.34 + i\ 2.35 + \ KERNELRELEASE=$(cat $1\/etc\/ovzkernel\/kernel\.release) 2.36 + }' ${PREFIX}$(echo ${i##linux-})${SUFFIX}/receipt 2.37 + fi 2.38 +done 2.39 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/base-scripts/local.sh Tue Nov 01 09:23:49 2011 +0100 3.3 @@ -0,0 +1,56 @@ 3.4 +#!/bin/sh 3.5 +# /etc/init.d/local.sh - Local startup commands. 3.6 +# 3.7 +# All commands here will be executed at boot time. 3.8 +# 3.9 +. /etc/init.d/rc.functions 3.10 + 3.11 +#~ (°- { Documentation dans /usr/share/doc. Utiliser 'less -EM' pour, 3.12 +#~ //\ lire des fichiers, devenir root avec 'su' et éditer avec 'nano'. 3.13 +#~ v_/_ Taper 'startx' pour lancer une session X. } 3.14 + 3.15 + 3.16 +echo "Starting local startup commands... " 3.17 + 3.18 +echo "SliTaz GNU/Linux (`cat /etc/slitaz-release`)" > /etc/motd 3.19 +echo >> /etc/motd 3.20 +echo "(°- { Documentation dans /usr/share/doc. Utiliser 'less -EM' pour," >> /etc/motd 3.21 +echo "//\ lire des fichiers, devenir root avec 'su' et éditer avec 'nano'." >> /etc/motd 3.22 +echo "v_/_ Acces au panel : http://<adresse_ip>:3000 }" >> /etc/motd 3.23 +echo >> /etc/motd 3.24 +echo "Kernel : `uname -r`" >> /etc/motd 3.25 +echo "hostname : `hostname`" >> /etc/motd 3.26 +echo "ip : $(ifconfig br0 | grep inet | \ 3.27 + cut -d ':' -f2 | cut -d ' ' -f1)" >> /etc/motd 3.28 +echo >> /etc/motd 3.29 + 3.30 +echo "SliTaz GNU/Linux $(cat /etc/slitaz-release) ($(ifconfig br0 | grep inet | \ 3.31 + cut -d ':' -f2 | cut -d ' ' -f1))" > /etc/issue 3.32 +echo >> /etc/issue 3.33 + 3.34 +echo " * Settings Kernel parameters" 3.35 +/sbin/sysctl -w -p /etc/sysctl.conf > /dev/null 2>&1 3.36 + 3.37 +# Setting up owp and VZ in Live mode 3.38 +if [ ! -f /var/lib/slitaz-vz ]; then 3.39 + # vzquota doesn't work in live mode ( http://labs.slitaz.org/issues/380 ) 3.40 + sed -i s/DISK_QUOTA=yes/DISK_QUOTA=no/ /etc/vz/vz.conf 3.41 + 3.42 + /usr/bin/ruby /usr/share/ovz-web-panel/utils/hw-daemon/hw-daemon.rb stop > /dev/null 2>&1 3.43 + 3.44 + echo " * Settings hw-daemon" 3.45 + echo "address = 127.0.0.1" > /usr/share/ovz-web-panel/utils/hw-daemon/hw-daemon.ini 3.46 + echo "port = 7767" >> /usr/share/ovz-web-panel/utils/hw-daemon/hw-daemon.ini 3.47 + 3.48 + export RAND_KEY=`head -c 200 /dev/urandom | md5sum | awk '{ print \$1 }'` 3.49 + echo "key = $RAND_KEY" >> /usr/share/ovz-web-panel/utils/hw-daemon/hw-daemon.ini 3.50 + 3.51 + # Add localhost in server list 3.52 + echo " * Adding localhost to the list of controlled servers..." 3.53 + #/usr/bin/ruby /usr/share/ovz-web-panel/script/runner -e production "HardwareServer.new(:host => 'localhost', :auth_key => '"$(echo $RAND_KEY)"').co 3.54 + sqlite3 /usr/share/ovz-web-panel/db/production.sqlite3 "insert into hardware_servers(host,auth_key) values('localhost','"$(echo $RAND_KEY)"')" 3.55 + /usr/bin/ruby /usr/share/ovz-web-panel/utils/hw-daemon/hw-daemon.rb start 3.56 + 3.57 + # Create slitaz-vz will prevent this configs. 3.58 + date > /var/lib/slitaz-vz 3.59 +fi
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/base-scripts/network.sh Tue Nov 01 09:23:49 2011 +0100 4.3 @@ -0,0 +1,226 @@ 4.4 +#!/bin/sh 4.5 +# /etc/init.d/network.sh - Network initialization boot script. 4.6 +# Config file is: /etc/network.conf 4.7 +# 4.8 +. /etc/init.d/rc.functions 4.9 + 4.10 +if [ -z "$2" ]; then 4.11 + . /etc/network.conf 4.12 +else 4.13 + . $2 4.14 +fi 4.15 + 4.16 + 4.17 +Boot() { 4.18 + # Set hostname. 4.19 + echo -n "Setting hostname..." 4.20 + /bin/hostname -F /etc/hostname 4.21 + status 4.22 + 4.23 + # Configure loopback interface. 4.24 + echo -n "Configuring loopback..." 4.25 + /sbin/ifconfig lo 127.0.0.1 up 4.26 + /sbin/route add 127.0.0.1 lo 4.27 + status 4.28 +} 4.29 + 4.30 + 4.31 +eth() { 4.32 +# Use ethernet 4.33 + ifconfig $INTERFACE up 4.34 +} 4.35 + 4.36 +wifi() { 4.37 + # For wifi. Users just have to enable it through yes and usually 4.38 + # essid any will work and the interface is autodetected. 4.39 + if [ "$WIFI" = "yes" ] || grep -q "wifi" /proc/cmdline; then 4.40 + ifconfig $INTERFACE down 4.41 + 4.42 + # Confirm if $WIFI_INTERFACE is the wifi interface 4.43 + if [ ! -d /sys/class/net/$WIFI_INTERFACE/wireless ]; then 4.44 + echo "$WIFI_INTERFACE is not a wifi interface, changing it." 4.45 + WIFI_INTERFACE=$(grep : /proc/net/dev | cut -d: -f1 | \ 4.46 + while read dev; do iwconfig $dev 2>&1 | \ 4.47 + grep -iq "essid" && { echo $dev ; break; }; \ 4.48 + done) 4.49 + [ -n "$WIFI_INTERFACE" ] && sed -i "s/^WIFI_INTERFACE=.*/WIFI_INTERFACE=\"$WIFI_INTERFACE\"/" /etc/network.conf 4.50 + fi 4.51 + 4.52 + echo -n "Configuring $WIFI_INTERFACE..." 4.53 + ifconfig $WIFI_INTERFACE up 4.54 + if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then 4.55 + iwconfig $WIFI_INTERFACE txpower on 4.56 + fi 4.57 + status 4.58 + 4.59 + [ -n "$WPA_DRIVER" ] || WPA_DRIVER="wext" 4.60 + 4.61 + 4.62 + IWCONFIG_ARGS="" 4.63 + [ -n "$WIFI_MODE" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS mode $WIFI_MODE" 4.64 + [ -n "$WIFI_CHANNEL" ] && IWCONFIG_ARGS="$IWCONFIG_ARGS channel $WIFI_CHANNEL" 4.65 + # unencrypted network 4.66 + if [ "$WIFI_KEY" == "" -o "$WIFI_KEY_TYPE" == "none" ]; 4.67 +then 4.68 + iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS 4.69 + fi 4.70 + # encrypted network 4.71 + [ -n "$WIFI_KEY" ] && case "$WIFI_KEY_TYPE" in 4.72 + wep|WEP) 4.73 + IWCONFIG_ARGS="$IWCONFIG_ARGS key $WIFI_KEY" 4.74 + iwconfig $WIFI_INTERFACE essid "$WIFI_ESSID" $IWCONFIG_ARGS 4.75 +# wpa_supplicant can also deal with wep encryption but iwconfig is preferred 4.76 +# Tip: Use unquoted strings for hexadecimal key in wep_key0 4.77 +# cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 4.78 +# cat >> /tmp/wpa.conf <<EOF 4.79 +#ctrl_interface=/var/run/wpa_supplicant 4.80 +#ctrl_interface_group=0 4.81 +#ap_scan=1 4.82 +#network={ 4.83 +# ssid="$WIFI_ESSID" 4.84 +# scan_ssid=1 4.85 +# key_mgmt=NONE 4.86 +# wep_key0="$WIFI_KEY" 4.87 +# wep_tx_keyidx=0 4.88 +# priority=5 4.89 +#} 4.90 +#EOF 4.91 +# echo "Starting wpa_supplicant for NONE/WEP..." 4.92 +# wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 4.93 + ;; 4.94 + wpa|WPA) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf # load pre-configured multiple profiles 4.95 + cat >> /tmp/wpa.conf <<EOF 4.96 +ctrl_interface=/var/run/wpa_supplicant 4.97 +ctrl_interface_group=0 4.98 +ap_scan=1 4.99 +network={ 4.100 + ssid="$WIFI_ESSID" 4.101 + scan_ssid=1 4.102 + proto=WPA RSN 4.103 + key_mgmt=WPA-PSK 4.104 + psk="$WIFI_KEY" 4.105 + priority=5 4.106 +} 4.107 +EOF 4.108 + echo "Starting wpa_supplicant for WPA-PSK..." 4.109 + wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 4.110 + ;; 4.111 + any|ANY) cat /etc/wpa_supplicant.conf > /tmp/wpa.conf 4.112 + cat >> /tmp/wpa.conf <<EOF 4.113 +ctrl_interface=/var/run/wpa_supplicant 4.114 +ctrl_interface_group=0 4.115 +ap_scan=1 4.116 +network={ 4.117 + ssid="$WIFI_ESSID" 4.118 + scan_ssid=1 4.119 + key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE 4.120 + group=CCMP TKIP WEP104 WEP40 4.121 + pairwise=CCMP TKIP 4.122 + psk="$WIFI_KEY" 4.123 + priority=5 4.124 +} 4.125 +EOF 4.126 + echo "Starting wpa_supplicant for any key type..." 4.127 + wpa_supplicant -B -W -c/tmp/wpa.conf -D$WPA_DRIVER -i$WIFI_INTERFACE 4.128 + ;; 4.129 + esac 4.130 + 4.131 + rm -f /tmp/wpa.conf 4.132 + 4.133 + INTERFACE=$WIFI_INTERFACE 4.134 + 4.135 + fi 4.136 + 4.137 +} 4.138 + 4.139 +wpa() 4.140 +{ 4.141 + DHCP_SCRIPT="/etc/init.d/wpa_action.sh" 4.142 + wpa_cli -a$DHCP_SCRIPT -B 4.143 +} 4.144 + 4.145 +dhcp() { 4.146 + 4.147 +# For a dynamic IP with DHCP. 4.148 + if [ "$DHCP" = "yes" ] ; then 4.149 + echo "Starting udhcpc client on: $INTERFACE..." 4.150 + if [ -d /var/run/wpa_supplicant ]; then # wpa wireless && wpa_ctrl_open interface is up 4.151 + wpa 4.152 + else # fallback on udhcpc: wep, eth 4.153 + /sbin/udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid 4.154 + fi 4.155 + fi 4.156 + 4.157 +} 4.158 + 4.159 +static_ip() { 4.160 +# For a static IP. 4.161 + if [ "$STATIC" = "yes" ] ; then 4.162 + echo "Configuring static IP on $INTERFACE: $IP..." 4.163 + /sbin/ifconfig $INTERFACE $IP netmask $NETMASK up 4.164 + /sbin/route add default gateway $GATEWAY 4.165 + # wpa_supplicant waits for wpa_cli 4.166 + [ -d /var/run/wpa_supplicant ] && wpa_cli -B 4.167 + # Multi-DNS server in $DNS_SERVER. 4.168 + /bin/mv /etc/resolv.conf /tmp/resolv.conf.$$ 4.169 + if [ -n "$DNS_SERVER" ], then 4.170 + for NS in $DNS_SERVER 4.171 + do 4.172 + echo "nameserver $NS" >> /etc/resolv.conf 4.173 + done 4.174 + else 4.175 + touch /etc/resolv.conf 4.176 + fi 4.177 + fi 4.178 +} 4.179 + 4.180 +# Stopping everything 4.181 +Stop() { 4.182 + echo "Stopping all interfaces" 4.183 + ifconfig $INTERFACE down 4.184 + ifconfig $WIFI_INTERFACE down 4.185 + 4.186 + echo "Killing all daemons" 4.187 + killall udhcpc 4.188 + killall wpa_supplicant 2>/dev/null 4.189 + 4.190 + if iwconfig $WIFI_INTERFACE | grep -q "Tx-Power"; then 4.191 + echo "Shutting down wifi card" 4.192 + iwconfig $WIFI_INTERFACE txpower off 4.193 + fi 4.194 +} 4.195 + 4.196 +Start() { 4.197 + eth 4.198 + wifi 4.199 + dhcp 4.200 + static_ip 4.201 + # change default lxpanel panel iface 4.202 + sed -i "s/iface=.*/iface=$INTERFACE/" /etc/lxpanel/default/panels/panel 4.203 +} 4.204 + 4.205 + 4.206 +# looking for arguments: 4.207 +if [ -z "$1" ]; then 4.208 + Boot 4.209 + Start 4.210 +else 4.211 + case $1 in 4.212 + start) 4.213 + Start ;; 4.214 + stop) 4.215 + Stop ;; 4.216 + restart) 4.217 + Stop 4.218 + Start ;; 4.219 + *) 4.220 + echo "" 4.221 + echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]" 4.222 + echo "" 4.223 + echo -e " Default configuration file is \033[1m/etc/network.conf\033[0m" 4.224 + echo -e " You can specify another configuration file in the second argument:" 4.225 + echo -e " \033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart] file.conf" 4.226 + echo "" 4.227 + 4.228 + esac 4.229 +fi
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/base-scripts/rc.network Tue Nov 01 09:23:49 2011 +0100 5.3 @@ -0,0 +1,79 @@ 5.4 +#!/bin/sh 5.5 +# rc.network, set network config stuff for OpenVZ container. 5.6 +# 5.7 +# 5.8 + 5.9 +. /etc/init.d/rc.functions 5.10 + 5.11 +if [ -z "$2" ]; then 5.12 + . /etc/network.conf 5.13 +else 5.14 + . $2 5.15 +fi 5.16 + 5.17 +Boot() { 5.18 + # Set hostname. 5.19 + /bin/hostname -F /etc/hostname 5.20 + 5.21 + # We are always start loopback 5.22 + ifconfig lo up 5.23 +} 5.24 + 5.25 +_ifconfig() { 5.26 + # Use ethernet 5.27 + ifconfig $INTERFACE up 5.28 + 5.29 + # Start all network devices 5.30 + for interface in /etc/network/ifconfig-* 5.31 + do 5.32 + DEVICE=$(echo "`basename $interface`" | sed 's/ifconfig-//') 5.33 + . $interface 5.34 + if [ "$ONBOOT" = "yes" ]; then 5.35 + case $MODE in 5.36 + static) 5.37 + /sbin/ifconfig $DEVICE $IP netmask $NETMASK broadcast $BROADCAST up ;; 5.38 + dhcp) 5.39 + /sbin/udhcpc -b -T 1 -A 12 -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid ;; 5.40 + *) 5.41 + echo "$MODE is not supported." ;; 5.42 + esac 5.43 + fi 5.44 + done 5.45 +} 5.46 + 5.47 +# Stopping everything 5.48 +Stop() { 5.49 + echo "Stopping all interfaces" 5.50 + ifconfig $INTERFACE down 5.51 + 5.52 + # Stopping all network interfaces. 5.53 + for interface in /etc/network/ifconfig-* 5.54 + do 5.55 + DEVICE=$(echo "`basename $interface`" | sed 's/ifconfig-//') 5.56 + . $interface 5.57 + if [ "$ONBOOT" = "yes" ]; then 5.58 + /sbin/ifconfig $DEVICE down 5.59 + fi 5.60 + done 5.61 + 5.62 +} 5.63 + 5.64 +Start() { 5.65 + _ifconfig 5.66 +} 5.67 + 5.68 +# looking for arguments: 5.69 +case $1 in 5.70 + start) 5.71 + Start ;; 5.72 + stop) 5.73 + Stop ;; 5.74 + restart) 5.75 + Stop 5.76 + Start 5.77 + ;; 5.78 + *) 5.79 + Boot 5.80 + Start 5.81 + ;; 5.82 +esac
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/base-scripts/rcS Tue Nov 01 09:23:49 2011 +0100 6.3 @@ -0,0 +1,255 @@ 6.4 +#!/bin/sh 6.5 +# /etc/init.d/rcS - Initial boot script for SliTaz GNU/Linux. 6.6 +# Config file is : /etc/rcS.conf 6.7 +# 6.8 +# rcS is the main initialization script used to check fs, mount, clean, 6.9 +# run scripts and start daemons. 6.10 +# 6.11 +. /etc/init.d/rc.functions 6.12 +. /etc/rcS.conf 6.13 + 6.14 +# Boot time. 6.15 +bootdate=`date +%s` 6.16 + 6.17 +if [ "$1" != "logged" ]; then # logged 6.18 + 6.19 +echo "Processing /etc/init.d/rcS..." 6.20 + 6.21 +# Mount /proc. 6.22 +echo -n "Mounting proc filesystem..." 6.23 +/bin/mount proc 6.24 +status 6.25 + 6.26 +# Parse cmdline args for earlier boot options. All other boot options 6.27 +# are in /etc/init./bootopts.sh. 6.28 +echo -n "Searching for early boot options..." 6.29 +for opt in `cat /proc/cmdline` 6.30 +do 6.31 + case $opt in 6.32 + fastbootx|fbx) 6.33 + export FAST_BOOT_X="yes" ;; 6.34 + cdrom=*) 6.35 + export CDROM=${opt#cdrom=} ;; 6.36 + modprobe=*) 6.37 + export MODPROBE="yes" ;; 6.38 + config=*) 6.39 + export CONFIG=${opt#config=} ;; 6.40 + *) 6.41 + continue ;; 6.42 + esac 6.43 +done 6.44 +status 6.45 + 6.46 +# Start Udev to populate /dev and handle hotplug events 6.47 +if [ "$UDEV" = "yes" ]; then 6.48 + echo -n "Starting udev daemon..." 6.49 + /sbin/udevd --daemon 6.50 + status 6.51 + echo -n "Udevadm requesting events from the Kernel..." 6.52 + udevadm trigger 6.53 + status 6.54 + echo -n "Udevadm waiting for the event queue to finish..." 6.55 + udevadm settle 6.56 + status 6.57 + echo "/sbin/udevd" > /proc/sys/kernel/hotplug 6.58 +fi 6.59 + 6.60 +# Before mounting filesystems we check fs specified in the file 6.61 +# /etc/rcS.conf and variable $CHECK_FS. 6.62 +if [ -n "$CHECK_FS" ]; then 6.63 + mount -o remount,ro / 6.64 + for i in $CHECK_FS 6.65 + do 6.66 + echo "Checking filesystem on : $i" 6.67 + /sbin/e2fsck -p $i 6.68 + done 6.69 +fi 6.70 + 6.71 +# Remount rootfs rw. 6.72 +echo "Remounting rootfs read/write..." 6.73 +/bin/mount -o remount,rw / 6.74 + 6.75 +# Mount filesystems in /etc/fstab. 6.76 +echo "Mounting filesystems in fstab..." 6.77 +/bin/mount -a 6.78 + 6.79 +# Store boot messages to log files. 6.80 +/bin/dmesg > /var/log/dmesg.log & 6.81 +vcsa2txt < /dev/vcsa1 | awk 'BEGIN {s=0} /^Processing|^.witching/ {s=1} { if (s) print }' >/var/log/boot.log 6.82 +script -a -q -c '/etc/init.d/rcS logged' /var/log/boot.log 6.83 + 6.84 +else # logged 6.85 + 6.86 +# Clean up the system. 6.87 +if [ "$CLEAN_UP_SYSTEM" = "yes" ]; then 6.88 + echo -n "Cleaning up the system..." 6.89 + find /var/run -name "*.pid" -type f | xargs /bin/rm -f 6.90 + /bin/rm -rf /tmp /var/run/dbus/* /var/run/hald/pid /var/lock/* 6.91 + /bin/mkdir -p /tmp && /bin/chmod 1777 /tmp 6.92 + status 6.93 +else 6.94 + echo "System clean up is disabled in /etc/rcS.conf..." 6.95 + echo -n "Keeping all tmp and pid files..." 6.96 + status 6.97 +fi 6.98 + 6.99 +# Set up tmp X11 and ICE dir. 6.100 +#~ echo -n "Setting up tmp X11 and ICE unix dir..." 6.101 +#~ /bin/mkdir -p /tmp/.X11-unix /tmp/.ICE-unix 6.102 +#~ /bin/chmod 1777 /tmp/.X11-unix /tmp/.ICE-unix 6.103 +#~ status 6.104 + 6.105 +# Fast boot into X for HD install or custom Live system. We need 6.106 +# keymap settings since Xvesa dumps the console mapping and a correct 6.107 +# slim configuration for screen resolution. DBUS and HAL must also start 6.108 +# before X session (manual login or autologin) to have devices in PCmanFM. 6.109 +if [ "$FAST_BOOT_X" = "yes" ]; then 6.110 + /etc/init.d/i18n.sh 6.111 + /etc/init.d/dbus start 6.112 + /etc/init.d/hald start 6.113 + /etc/init.d/slim start & 6.114 +fi 6.115 + 6.116 +# Create /dev/cdrom if needed (symlink does not exist on LiveCD). 6.117 +# Also add /dev/cdrom to fstab if entry does not exist. 6.118 +if [ -n "$CDROM" ]; then 6.119 + DRIVE_NAME=${CDROM#/dev/} 6.120 +else 6.121 + DRIVE_NAME=`cat /proc/sys/dev/cdrom/info | grep "drive name" | cut -f 3` 6.122 +fi 6.123 +if [ -n "$DRIVE_NAME" -a ! "`readlink /dev/cdrom`" ]; then 6.124 + echo -n "Creating symlink : /dev/cdrom..." 6.125 + ln -s /dev/$DRIVE_NAME /dev/cdrom 6.126 + ln -s /dev/$DRIVE_NAME /dev/dvd 6.127 + status 6.128 +fi 6.129 +if ! grep -q "/dev/cdrom" /etc/fstab; then 6.130 + echo -n "Adding /dev/cdrom to fstab..." 6.131 + echo '/dev/cdrom /media/cdrom iso9660 user,ro,noauto 0 0' \ 6.132 + >> /etc/fstab 6.133 + status 6.134 +fi 6.135 +# Chmod hack on each boot for Asunder and burnbox. Allowing all users 6.136 +# to burn/rip CD/DVD. 6.137 +if [ -n "$DRIVE_NAME" -a "`readlink /dev/cdrom`" ]; then 6.138 + echo -n "Chmoding cdrom device..." 6.139 + chmod 0666 /dev/cdrom 6.140 + chmod 0666 /dev/dvd 6.141 + chmod 0666 /dev/$DRIVE_NAME 6.142 + status 6.143 +fi 6.144 + 6.145 +# Handle kernel cmdline parameter modprobe=<module_list> 6.146 +if [ -n "$MODPROBE" ]; then 6.147 + MODULES=`sed -e 's/.* modprobe=\([^ ]*\).*/\1/' -e 's/,/\n/g' < /proc/cmdline` 6.148 + for i in $MODULES; do 6.149 + echo -n "Loading kernel module $i" 6.150 + /sbin/modprobe $i 6.151 + status 6.152 + done 6.153 +fi 6.154 + 6.155 +# Handle kernel cmdline parameter config=<device>,<path> to source a 6.156 +# disk init script 6.157 +if [ -n "$CONFIG" ]; then 6.158 + DEVICE=${CONFIG%,*} 6.159 + SCRIPT=${CONFIG#*,} 6.160 + echo "Probing $DEVICE... " 6.161 + if ! /bin/mount -r $DEVICE /mnt; then 6.162 + if echo $DEVICE | grep -Eq "/dev/sd|UUID=|LABEL="; then 6.163 + USBDELAY=`cat /sys/module/usb_storage/parameters/delay_use` 6.164 + USBDELAY=$((1+$USBDELAY)) 6.165 + echo "$DEVICE is potentially a USB device: sleep for $USBDELAY seconds" 6.166 + sleep $USBDELAY 6.167 + fi 6.168 + if ! /bin/mount -r $DEVICE /mnt; then 6.169 + CONFIG="" 6.170 + fi 6.171 + fi 6.172 + echo -n "Source $SCRIPT from $DEVICE..." 6.173 + if [ -n "$CONFIG" ]; then 6.174 + . /mnt/$SCRIPT 6.175 + /bin/umount /mnt 2> /dev/null || true 6.176 + fi 6.177 + status 6.178 +fi 6.179 + 6.180 +# Mount /proc/bus/usb. 6.181 +if [ -d /proc/bus/usb ]; then 6.182 + echo -n "Mounting /proc/bus/usb filesystem..." 6.183 + /bin/mount -t usbfs usbfs /proc/bus/usb 6.184 + status 6.185 +fi 6.186 + 6.187 +# Start syslogd and klogd. 6.188 +if [ "$KERNEL_LOG_DAEMONS" = "yes" ]; then 6.189 + echo -n "Starting system log deamon: syslogd..." 6.190 + /sbin/syslogd -s $SYSLOGD_ROTATED_SIZE && status 6.191 + echo -n "Starting kernel log daemon: klogd..." 6.192 + /sbin/klogd && status 6.193 +else 6.194 + echo "Kernel log daemons are disabled in /etc/rc.conf..." 6.195 +fi 6.196 + 6.197 +# Load all modules listed in config file. 6.198 +if [ -n "$LOAD_MODULES" ]; then 6.199 + for mod in $LOAD_MODULES 6.200 + do 6.201 + modprobe $mod 6.202 + done 6.203 +fi 6.204 + 6.205 +# Be quiet on configuration to avoid messages overwriting ncurses dialog 6.206 +echo "0 0 0 0" > /proc/sys/kernel/printk 6.207 + 6.208 +# Detect PCI and USB devices with Tazhw from slitaz-tools. We load 6.209 +# kernel modules only at first boot or in LiveCD mode. 6.210 +if [ ! -s /var/lib/detected-modules ]; then 6.211 + /sbin/tazhw init 6.212 +fi 6.213 + 6.214 +# Call udevadm trigger to ensure /dev is fully populate now that all 6.215 +# modules are loaded. 6.216 +if [ "$UDEV" = "yes" ]; then 6.217 + echo -n "Requesting events from the Kernel..." 6.218 + udevadm trigger 6.219 + status 6.220 +fi 6.221 + 6.222 +# Start all scripts specified with $RUN_SCRIPTS. 6.223 +echo "Executing all initialization scripts..." 6.224 +for script in $RUN_SCRIPTS 6.225 +do 6.226 + if [ -x /etc/init.d/$script ]; then 6.227 + /etc/init.d/$script 6.228 + fi 6.229 +done 6.230 + 6.231 +# Re-source main config file. In Live mode, daemons list can be modified 6.232 +# by boot options (screen=text will remove slim). 6.233 +. /etc/rcS.conf 6.234 + 6.235 +# Start all daemons specified with $RUN_DAEMONS. 6.236 +echo "Starting all daemons specified in /etc/rcS.conf..." 6.237 +for daemon in $RUN_DAEMONS 6.238 +do 6.239 + if [ -x /etc/init.d/$daemon ]; then 6.240 + /etc/init.d/$daemon start 6.241 + fi 6.242 +done 6.243 + 6.244 +# Back to a verbose mode. 6.245 +echo "7 4 1 7" > /proc/sys/kernel/printk 6.246 + 6.247 +# Reset screen and display a bold message. 6.248 +if [ -n "$MESSAGE" ]; then 6.249 + /usr/bin/reset 6.250 + #echo -e "\033[1m$MESSAGE\033[0m" 6.251 +fi 6.252 + 6.253 +# Display and log boot time. 6.254 +time=$((`date +%s` - $bootdate)) 6.255 +echo $time > /var/log/boot-time 6.256 +#echo "SliTaz boot time: ${time}s" 6.257 + 6.258 +fi # logged
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/base-scripts/setup Tue Nov 01 09:23:49 2011 +0100 7.3 @@ -0,0 +1,232 @@ 7.4 +#!/bin/sh 7.5 +# Tazadmin - SliTaz System Configuration 7.6 +# 7.7 +# 7.8 +# Author : Eric Joseph-Alexandre (Erjo) <erjo@slitaz.org> 7.9 +# 7.10 + 7.11 +#export DIALOGRC=$PWD/rc/slackware.rc 7.12 + 7.13 +VERSION=1.0 7.14 + 7.15 +: ${DIALOG=dialog} 7.16 + 7.17 +BACKTITLE="SliTaz Configuration Tools v.${VERSION}" 7.18 +COMMAND=$1 7.19 +LOG=/tmp/$(basename $0).log 7.20 +OUT=/tmp/_retval_ 7.21 +DATADIR=/usr/share/slitaz-tools/tazadmin/ 7.22 +#DATADIR=./ 7.23 + 7.24 +BS="15 50" 7.25 + 7.26 +# Messages language setting 7.27 +# Switch to default English if $LANG.msg doesn't exist. 7.28 +set_locale() 7.29 +{ 7.30 + if [ -f ${LANG%%_*}.msg ]; then 7.31 + . ${DATADIR}${LANG%%_*}.msg 7.32 + fi 7.33 +} 7.34 + 7.35 +# use --msgbox. 7.36 +# syntax: msg ["Title"] "Message text" 7.37 +msg() 7.38 +{ 7.39 + if [ $# -gt 1 ]; then 7.40 + TITLE=$1 7.41 + shift 7.42 + MSG="$@" 7.43 + else 7.44 + MSG="$@" 7.45 + fi 7.46 + $DIALOG --title " ${TITLE:-Message} " \ 7.47 + --colors --backtitle "$BACKTITLE" \ 7.48 + --clear --msgbox "\n$MSG" 0 0 7.49 +} 7.50 + 7.51 +# Exit install if user is not root. 7.52 +check_root() 7.53 +{ 7.54 + if test $(id -u) != 0 ; then 7.55 + error_message "$ERR_CHK_ROOT" 7.56 + exit 0 7.57 + fi 7.58 +} 7.59 + 7.60 +# functions 7.61 +# 7.62 +trim(){ 7.63 + read LINE 7.64 + echo $LINE 7.65 +} 7.66 + 7.67 +get_argc() 7.68 +{ 7.69 + echo $# 7.70 +} 7.71 + 7.72 + 7.73 + 7.74 + 7.75 +get_hostname() 7.76 +{ 7.77 + # Set hostname 7.78 + HOSTNAME=$(cat /etc/hostname) 7.79 + exec 3>&1 7.80 + HOSTNAME=`$DIALOG --backtitle "$BACKTITLE" --title "Hostname" --clear \ 7.81 + --inputbox "Enter your computer hostname" $BS "${HOSTNAME}" 2>&1 1>&3` 7.82 + ret=$? 7.83 + exec 3>&- 7.84 + # if $HOSTNAME is set we update /etc/hostname 7.85 + # and change current hostname. 7.86 + if [ ! -z ${HOSTNAME} ]; then 7.87 + echo ${HOSTNAME} > /etc/hostname 7.88 + hostname $(cat /etc/hostname) 7.89 + fi 7.90 +} 7.91 + 7.92 +set_ip_adress() 7.93 +{ 7.94 + # Set static configuration for Network. 7.95 + . /etc/network.conf 7.96 + exec 3>&1 7.97 + IPCONFIG=`$DIALOG --ok-label "Submit" \ 7.98 + --backtitle "$BACKTITLE" --extra-button --extra-label "${BTN_DHCP:-Use DHCP server}"\ 7.99 + --title " IP configuration " \ 7.100 + --form "Here is a possible piece of a configuration program." \ 7.101 + 20 55 0 \ 7.102 + "Interface : " 1 1 "$INTERFACE" 1 21 20 0 \ 7.103 + "IP Address : " 2 1 "$IP" 2 21 20 0 \ 7.104 + "Network mask : " 3 1 "$NETMASK" 3 21 20 0 \ 7.105 + "Default gateway : " 4 1 "$GATEWAY" 4 21 20 0 \ 7.106 + "DNS server(s) : " 5 1 "$DNS_SERVER" 5 21 20 0 \ 7.107 + 2>&1 1>&3` 7.108 + ret=$? 7.109 + exec 3>&- 7.110 + 7.111 + case "$ret" in 7.112 + 0) 7.113 + if [[ "`get_argc $IPCONFIG`" -gt "1" ]]; then 7.114 + set_static_ip $IPCONFIG 7.115 + else 7.116 + msg "${ERR_BED_IP:-Invalid values.}" 7.117 + fi 7.118 + ;; 7.119 + 3) 7.120 + get_dhcp_lease ;; 7.121 + esac 7.122 +} 7.123 + 7.124 +get_dhcp_lease() 7.125 +{ 7.126 + sed -i 's/DHCP=.*/DHCP="yes"/' /etc/network.conf 7.127 + sed -i 's/STATIC=.*/STATIC="no"/' /etc/network.conf 7.128 + /sbin/udhcpc -b -i $INTERFACE -p /var/run/udhcpc.$INTERFACE.pid & 7.129 +} 7.130 + 7.131 +set_static_ip() 7.132 +{ 7.133 + sed -i 's/DHCP=.*/DHCP="no"/' /etc/network.conf 7.134 + sed -i 's/STATIC=.*/STATIC="yes"/' /etc/network.conf 7.135 + sed -i -e "s/INTERFACE=".*"/INTERFACE=\"$1\"/" /etc/network.conf 7.136 + sed -i -e "s/IP=".*"/IP=\"$2\"/" /etc/network.conf 7.137 + sed -i -e "s/NETMASK=".*"/NETMASK=\"$3\"/" /etc/network.conf 7.138 + sed -i -e "s/GATEWAY=".*"/GATEWAY=\"$4\"/" /etc/network.conf 7.139 + sed -i -e "s/DNS_SERVER=".*"/DNS_SERVER=\"$5\"/" /etc/network.conf 7.140 +} 7.141 + 7.142 +network_menu() 7.143 +{ 7.144 + ret=0 7.145 + until [ $ret -eq 1 ];do 7.146 + $DIALOG --title "$MENU_TITLE" \ 7.147 + --backtitle "$BACKTITLE" --clear \ 7.148 + --cancel-label "Quitter" \ 7.149 + --colors \ 7.150 + --menu "$TAZ_CMD_MSG" 15 50 40\ 7.151 + "adress" " Network settings" \ 7.152 + "hostname" " Set your hostname" \ 7.153 + 2> $OUT 7.154 + ret=$? 7.155 + case `cat $OUT` in 7.156 + hostname) 7.157 + get_hostname ;; 7.158 + adress) 7.159 + set_ip_adress ;; 7.160 + esac 7.161 + done 7.162 +} 7.163 + 7.164 +set_password() 7.165 +{ 7.166 + SEP=' 7.167 +' 7.168 + exec 3>&1 7.169 + PASSWORD=`$DIALOG --backtitle "$BACKTITLE" --title "Set password" --clear \ 7.170 + --separate-widget "$SEP" \ 7.171 + --insecure --passwordbox "Enter new password for user below: \n\n" 10 50 \ 7.172 + --title "Confirme password" \ 7.173 + --insecure --passwordbox "Confirme new password for user below: \n\n" 10 50 2>&1 1>&3` 7.174 + ret=$? 7.175 + exec 3>&- 7.176 + if [ -z "${PASSWORD}" ]; then 7.177 + msg "Password not set" 7.178 + else 7.179 + PASS1="$(echo $PASSWORD | cut -d ' ' -f1)" 7.180 + PASS2="$(echo $PASSWORD | cut -d ' ' -f2)" 7.181 + if [ "$PASS1" != "$PASS2" ]; then 7.182 + msg "Passwords don't match.\nNothing change." 7.183 + else 7.184 + echo "root:$PASS1" | chpasswd 7.185 + fi 7.186 + fi 7.187 +} 7.188 + 7.189 +## 7.190 +# Program sequence 7.191 +# 7.192 +set_locale 7.193 +check_root 7.194 + 7.195 +until [ $retval -eq 1 ];do 7.196 + $DIALOG --title "$MENU_TITLE" \ 7.197 + --backtitle "$BACKTITLE" --clear \ 7.198 + --cancel-label "Quitter" \ 7.199 + --colors \ 7.200 + --menu "$TAZ_CMD_MSG" 15 50 40\ 7.201 + "keymap" " Keyboard mapping" \ 7.202 + "locale" " Language setting" \ 7.203 + "network" " Netwok configuration" \ 7.204 + "password" " Change root password" \ 7.205 + 2> $OUT 7.206 + 7.207 + retval=$? 7.208 + 7.209 + # Execute commands 7.210 + # 7.211 + case `cat $OUT` in 7.212 + keymap) 7.213 + if [ -x /sbin/tazkeymap ]; then 7.214 + tazkeymap 7.215 + else 7.216 + msg "Unable to find tazkeymap !" 7.217 + fi 7.218 + ;; 7.219 + locale) 7.220 + if [ -x /sbin/tazlocale ]; then 7.221 + tazlocale 7.222 + else 7.223 + msg "Unable to find tazlocale !" 7.224 + fi 7.225 + ;; 7.226 + network) 7.227 + network_menu;; 7.228 + password) 7.229 + set_password ;; 7.230 + esac 7.231 +done 7.232 + 7.233 +clear 7.234 + 7.235 +exit 0
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/base-scripts/vz Tue Nov 01 09:23:49 2011 +0100 8.3 @@ -0,0 +1,604 @@ 8.4 +#!/bin/sh 8.5 +# Copyright (C) 2000-2008, Parallels, Inc. All rights reserved. 8.6 +# 8.7 +# This program is free software; you can redistribute it and/or modify 8.8 +# it under the terms of the GNU General Public License as published by 8.9 +# the Free Software Foundation; either version 2 of the License, or 8.10 +# (at your option) any later version. 8.11 +# 8.12 +# This program is distributed in the hope that it will be useful, 8.13 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 8.14 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 8.15 +# GNU General Public License for more details. 8.16 +# 8.17 +# You should have received a copy of the GNU General Public License 8.18 +# along with this program; if not, write to the Free Software 8.19 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 8.20 +# 8.21 +# 8.22 +# OpenVZ startup script, used for redhat and debian related distributions. 8.23 + 8.24 +### 8.25 +# description: OpenVZ startup script. 8.26 +### 8.27 + 8.28 +VZCONF=/etc/vz/vz.conf 8.29 + 8.30 +[ -f ${VZCONF} ] || exit 0 8.31 +. ${VZCONF} 8.32 +[ "${VIRTUOZZO}" = "no" ] && exit 0 8.33 + 8.34 +VZCTL=/usr/sbin/vzctl 8.35 +[ -x ${VZCTL} ] || exit 0 8.36 + 8.37 +VZQUOTA=/usr/sbin/vzquota 8.38 +CONFIG_DIR=/etc/vz/conf 8.39 +LOCKFILE=/var/lock/subsys/vz_lock 8.40 +SUBSYS_VZ=/var/lock/subsys/vz 8.41 +VESTAT=/proc/vz/vestat 8.42 +VZDEV=venet0 8.43 +PRELOAD_MODULES= 8.44 +MODULES= 8.45 +MODULES_OTHER= 8.46 +NET_MODULES= 8.47 +IPT_MODULES= 8.48 + 8.49 +if [ "${MODULES_DISABLED}" != "yes" ]; then 8.50 + PRELOAD_MODULES="af_packet" 8.51 + MODULES="vzmon vzdquota vzdev" 8.52 + CPT_MODULES="vzcpt vzrst" 8.53 + MODULES_OTHER="vzcompat ${CPT_MODULES}" 8.54 + VNET_MODULES="vznetdev vznet" 8.55 + VETH_MODULES="vzethdev" 8.56 + NET_MODULES="${VNET_MODULES} ${VETH_MODULES}" 8.57 + if [ "${VZWDOG}" = "yes" ]; then 8.58 + MODULES="${MODULES} vzwdog" 8.59 + fi 8.60 + IPT_MODULES="ip_tables ${IPTABLES} xt_tcpudp" 8.61 + if [ "${IPV6}" = "yes" ]; then 8.62 + IPT_MODULES="${IPT_MODULES} ${IP6TABLES}" 8.63 + fi 8.64 + VZFS_MODULES="simfs" 8.65 +fi 8.66 + 8.67 + 8.68 +rc_done='..done' 8.69 +rc_failed='..failed' 8.70 + 8.71 +# Source function library. 8.72 +if [ -r /etc/init.d/functions ]; then 8.73 + source /etc/init.d/functions 8.74 + if [ -r /etc/redhat-release ] || [ -r /etc/centos-release ]; then 8.75 + DISTR=redhat 8.76 + fi 8.77 +elif [ -r /etc/rc.status ]; then 8.78 + source /etc/rc.status 8.79 + if [ -r /etc/SuSE-release ]; then 8.80 + DISTR=suse 8.81 + fi 8.82 +elif [ -r /etc/debian_version ]; then 8.83 + DISTR=debian 8.84 + LOCKFILE=/var/lock/vz_lock 8.85 + SUBSYS_VZ=/var/lock/vz 8.86 +elif [ -r /etc/slitaz-release ]; then 8.87 + DISTR=slitaz 8.88 + LOCKFILE=/var/lock/vz_lock 8.89 + SUBSYS_VZ=/var/lock/vz 8.90 +fi 8.91 + 8.92 +VEINFO="" 8.93 +RETVAL=0 8.94 +# Number of the containers to stop in parallel. 8.95 +# In case of empty value the number of CTs is calculated as 'num_cpu * 4' 8.96 +PARALLEL= 8.97 +cd / 8.98 + 8.99 +# We used to install OpenVZ cron job when the vzctl package was 8.100 +# installed, irrespective of whether OpenVZ was actually being 8.101 +# run. Although the cron jobs didn't create any problems if someone 8.102 +# wasn't running OpenVZ some users complained about the cron log file 8.103 +# filling up, resource usage, and power consumption since systems 8.104 +# wouldn't really idle. It really only makes sense to run the OpenVZ 8.105 +# cron job if the vz service is turned on and not just merely 8.106 +# having the package installed. This init.d script is an obvious place 8.107 +# to install or remove the cron jobs based on the service 8.108 +# being enabled or not. 8.109 +SRC_CRONSCRIPT_DIR=/etc/vz/cron 8.110 +DST_CRONSCRIPT_DIR=/etc/cron.d 8.111 + 8.112 +check_old_cron_files() 8.113 +{ 8.114 + # avoid double OpenVZ cron settings 8.115 + local f 8.116 + for f in vpsreboot vpsnetclean; do 8.117 + [ -f $DST_CRONSCRIPT_DIR/$f ] && rm -f $DST_CRONSCRIPT_DIR/$f 8.118 + done 8.119 +} 8.120 + 8.121 +setup_cron() 8.122 +{ 8.123 + check_old_cron_files 8.124 + [ -z "$SRC_CRONSCRIPT_DIR" ] && return 8.125 + [ -d "$SRC_CRONSCRIPT_DIR" ] || return 8.126 + cat $SRC_CRONSCRIPT_DIR/vz* > $DST_CRONSCRIPT_DIR/vz && 8.127 + chmod 644 $DST_CRONSCRIPT_DIR/vz 8.128 +} 8.129 + 8.130 +remove_cron() 8.131 +{ 8.132 + check_old_cron_files 8.133 + [ -z "$SRC_CRONSCRIPT_DIR" ] && return 8.134 + [ -d "$SRC_CRONSCRIPT_DIR" ] || return 8.135 + cat > $DST_CRONSCRIPT_DIR/vz <<EOF 8.136 +# DO NOT EDIT THIS FILE! 8.137 +# 8.138 +# Contents of this file managed by /etc/init.d/vz script 8.139 +# Master copy is in $SRC_CRONSCRIPT_DIR/vz* file(s). 8.140 +# Consult $SRC_CRONSCRIPT_DIR/vz* for documentation. 8.141 +EOF 8.142 +} 8.143 + 8.144 +# Actualize OpenVZ cron entry: 8.145 +# if OpenVZ is running, add it, otherwise remove. 8.146 +update_cron() 8.147 +{ 8.148 + if is_running; then 8.149 + __echo "Adding OpenVZ cron entries" 8.150 + setup_cron 8.151 + else 8.152 + __echo "Removing OpenVZ cron entries" 8.153 + remove_cron 8.154 + fi 8.155 + print_result 8.156 +} 8.157 + 8.158 +check_kernel() 8.159 +{ 8.160 + if ! test -d /proc/vz ; then 8.161 + print_failure "Running kernel is not OpenVZ kernel." 8.162 + exit 1 8.163 + fi 8.164 +} 8.165 + 8.166 +get_kernel_version() 8.167 +{ 8.168 + [ ! -z "$KERNEL_MAJOR" ] && return 8.169 + 8.170 + local ver=$(uname -r) 8.171 + local kernel=$(echo $ver | sed s/[-+].*//) 8.172 + KERNEL_MAJOR=$(echo $kernel | awk -F . '{print $1}') 8.173 + KERNEL_MINOR=$(echo $kernel | awk -F . '{print $2}') 8.174 + KERNEL_PATCHLEVEL=$(echo $kernel | awk -F . '{print $3}') 8.175 +} 8.176 + 8.177 +check_kernel_config() 8.178 +{ 8.179 + test -r /proc/config.gz || return 0 8.180 + 8.181 + local conf opt err=0 8.182 + local opt_must="SIM_FS VE VE_CALLS VZ_GENCALLS" 8.183 + get_kernel_version 8.184 + # For kernels >= 2.6.9 VZ_DEV must be set. 8.185 + test "${KERNEL_MINOR}" -ge 6 && 8.186 + test "${KERNEL_PATCHLEVEL}" -gt 9 && 8.187 + opt_must="${opt_must} VZ_DEV" 8.188 +# local opt_rec="SCHED_VCPU FAIRSCHED VZ_QUOTA VZ_QUOTA_UGID VE_NETDEV VE_ETHDEV 8.189 +# VE_IPTABLES VZ_CHECKPOINT VZ_WDOG" 8.190 + 8.191 + conf="`zcat /proc/config.gz 2>/dev/null | grep -E -v '^#|^$'`" 8.192 + 8.193 + for opt in $opt_must; do 8.194 + if ! echo "$conf" 2>/dev/null | grep -q "$opt="; then 8.195 + echo "ERROR: Missing kernel config option: CONFIG_$opt" 8.196 + err=1 8.197 + fi 8.198 + done 8.199 + if [ $err != 0 ]; then 8.200 + print_failure "Please recompile your kernel." 8.201 + exit 1 8.202 + fi 8.203 +} 8.204 + 8.205 +get_parallel() 8.206 +{ 8.207 + [ -n "${PARALLEL}" ] && return 8.208 + PARALLEL=`awk ' 8.209 +BEGIN { num=0; } 8.210 +$1 == "processor" { num++; } 8.211 +END { print num * 4; }' /proc/cpuinfo` 8.212 +} 8.213 + 8.214 +get_veinfo() 8.215 +{ 8.216 + if [ -f /proc/vz/veinfo ]; then 8.217 + VEINFO=/proc/vz/veinfo 8.218 + elif [ -f /proc/veinfo ]; then 8.219 + VEINFO=/proc/veinfo 8.220 + elif [ ! -f $VESTAT ]; then 8.221 + return 1 8.222 + fi 8.223 + return 0 8.224 +} 8.225 + 8.226 +print_success() 8.227 +{ 8.228 + if [ "$DISTR" = "redhat" ]; then 8.229 + echo_success 8.230 + else 8.231 + echo -n "$rc_done" 8.232 + fi 8.233 + echo 8.234 +} 8.235 + 8.236 +print_failure() 8.237 +{ 8.238 + echo -n "$1" 8.239 + if [ "$DISTR" = "redhat" ]; then 8.240 + failure $"$1" 8.241 + else 8.242 + echo -n "$rc_failed" 8.243 + fi 8.244 + echo 8.245 +} 8.246 + 8.247 +# Calls either print_success or print_failure, depending on $? 8.248 +# Optional argument $1 -- an error string passed to print_failure. 8.249 +print_result() 8.250 +{ 8.251 + if [ $? -eq 0 ] ; then 8.252 + print_success 8.253 + else 8.254 + print_failure "$1" 8.255 + fi 8.256 +} 8.257 + 8.258 +__echo() 8.259 +{ 8.260 + if [ "$DISTR" = "redhat" ]; then 8.261 + echo -n $"$1" 8.262 + else 8.263 + echo -n "$1" 8.264 + fi 8.265 +} 8.266 + 8.267 +is_running() 8.268 +{ 8.269 + get_veinfo || return 1 8.270 + [ -f $SUBSYS_VZ ] || return 1 8.271 +} 8.272 + 8.273 +status() 8.274 +{ 8.275 + check_kernel 8.276 + 8.277 + if is_running; then 8.278 + echo "OpenVZ is running..." 8.279 + return 0 8.280 + else 8.281 + echo "OpenVZ is stopped." 8.282 + return 3 8.283 + fi 8.284 +} 8.285 + 8.286 +start_net() 8.287 +{ 8.288 + local mod 8.289 + 8.290 + # load all kernel modules needed for containers networking 8.291 + for mod in ${NET_MODULES}; do 8.292 + modprobe ${mod} 2>/dev/null 8.293 + done 8.294 + 8.295 + if ip addr list | grep -q "venet0:.*UP" 2>/dev/null; then 8.296 + return 0 8.297 + fi 8.298 + 8.299 + get_veinfo 8.300 + if [ -z "$VEINFO" ]; then 8.301 + return 0 8.302 + fi 8.303 + __echo "Bringing up interface $VZDEV: " 8.304 + ip link set $VZDEV up 8.305 + print_result 8.306 + ip addr add 0.0.0.0/0 dev $VZDEV 8.307 + __echo "Configuring interface $VZDEV: " 8.308 + sysctl -w net.ipv4.conf.$VZDEV.send_redirects=0 8.309 + print_result 8.310 + if [ "${IPV6}" = "yes" ]; then 8.311 + __echo "Configuring ipv6 $VZDEV: " 8.312 + # Fix me: ip addres should be generated 8.313 + ip -6 addr add fe80::1/128 dev $VZDEV 8.314 + print_result 8.315 + fi 8.316 +} 8.317 + 8.318 +stop_net() 8.319 +{ 8.320 + local mod 8.321 + 8.322 + if ip addr list | grep -q "venet0:.*UP" 2>/dev/null; then 8.323 + __echo "Bringing down interface $VZDEV: " 8.324 + ip link set $VZDEV down 8.325 + print_result 8.326 + fi 8.327 + for mod in ${NET_MODULES}; do 8.328 + /sbin/modprobe -r ${mod} > /dev/null 2>&1 8.329 + done 8.330 +} 8.331 + 8.332 +setup_ve0() 8.333 +{ 8.334 + if test -z "${VE0CPUUNITS}"; then 8.335 + echo "Warning: VE0CPUUNITS is not set in ${VZCONF}; using value of 1000" 8.336 + VE0CPUUNITS=1000 8.337 + fi 8.338 + msg=`${VZCTL} set 0 --cpuunits ${VE0CPUUNITS} 2>&1` 8.339 + if [ $? -ne 0 ]; then 8.340 + print_failure "vzctl set 0 --cpuunits ${VE0CPUUNITS} failed: $msg" 8.341 + fi 8.342 + 8.343 + if ! test -f "${CONFIG_DIR}/0.conf"; then 8.344 + return 8.345 + fi 8.346 + if ! grep -q '^ONBOOT=yes\|^ONBOOT=\"yes\"' ${CONFIG_DIR}/0.conf; 8.347 + then 8.348 + return 8.349 + fi 8.350 + __echo "Configure node UB resources: " 8.351 + msg=`$VZCTL set 0 --reset_ub 2>&1` 8.352 + print_result "$msg" 8.353 +} 8.354 + 8.355 +start_ves() 8.356 +{ 8.357 + local veid 8.358 + local velist 8.359 + local msg 8.360 + local need_restart 8.361 + 8.362 + need_restart="" 8.363 + cd ${CONFIG_DIR} || return 8.364 + velist=`grep -l '^ONBOOT=yes\|^ONBOOT=\"yes\"' [0-9]*.conf 2>/dev/null | 8.365 + sed -e 's/.conf//g' | sort -n` 8.366 + cd - >/dev/null 8.367 + sysctl -w net.ipv4.route.src_check=0 8.368 + for veid in $velist; do 8.369 + [ "${veid}" = "0" ] && continue 8.370 + __echo "Starting CT ${veid}: " 8.371 + if [ "x${VZFASTBOOT}" = "xyes" -a "x${DISK_QUOTA}" = "xyes" ]; 8.372 + then 8.373 + $VZQUOTA stat ${veid} >/dev/null 2>&1 8.374 + if [ $? -eq 6 ]; then 8.375 + if $VZQUOTA show ${veid} 2>&1 | grep "vzquota : (warning) Quota is running" >/dev/null 2>&1; then 8.376 + $VZQUOTA on ${veid} --nocheck >/dev/null 2>&1 8.377 + need_restart="${need_restart} ${veid}" 8.378 + fi 8.379 + fi 8.380 + fi 8.381 + msg=`$VZCTL start ${veid} 2>&1` 8.382 + print_result "$msg" 8.383 + done 8.384 + for veid in ${need_restart}; do 8.385 + __echo "Stopping CT ${veid}: " 8.386 + $VZCTL stop ${veid} 2>&1 >/dev/null 2>&1 8.387 + print_result "$msg" 8.388 + __echo "Starting CT ${veid}: " 8.389 + msg=`$VZCTL start ${veid} 2>&1` 8.390 + print_result "$msg" 8.391 + done 8.392 +} 8.393 + 8.394 +stop_ves() 8.395 +{ 8.396 + local veid 8.397 + local velist 8.398 + local msg 8.399 + local m 8.400 + local mounts 8.401 + local fail 8.402 + local iter 8.403 + local quota 8.404 + local pids 8.405 + 8.406 + if get_veinfo; then 8.407 + get_parallel 8.408 + for i in 0 1 2; do 8.409 + iter=0; 8.410 + pids= 8.411 + velist=`awk '$1 != "VEID" && $1 != "Version:" {print $1}' ${VESTAT}` 8.412 + for veid in $velist; do 8.413 + echo "Shutting down CT $veid" 8.414 + # Set fairsched parameters to maximum so 8.415 + # CT will stop fast 8.416 + $VZCTL set $veid --cpuunits 2000 --cpulimit 0 >/dev/null 2>&1 8.417 + $VZCTL --skiplock stop $veid >/dev/null 2>&1 & 8.418 + pids="$pids $!" 8.419 + iter=$(($iter+1)) 8.420 + if [ ${iter} -gt ${PARALLEL} ]; then 8.421 + for pid in ${pids}; do 8.422 + wait ${pid} 8.423 + done 8.424 + pids= 8.425 + iter=0 8.426 + fi 8.427 + done 8.428 + for pid in $pids; do 8.429 + wait $pid 8.430 + done 8.431 + done 8.432 + fi 8.433 + iter=0 8.434 + fail=1 8.435 + while test $iter -lt 5 -a $fail -ne 0; do 8.436 + fail=0 8.437 + mounts=`awk '{if ($3=="simfs") print $2}' /proc/mounts` 8.438 + for m in $mounts; do 8.439 + __echo "Unmounting CT area " 8.440 + echo -n $m 8.441 + msg=`umount $m 2>&1` 8.442 + if [ $? -eq 0 ]; then 8.443 + print_success 8.444 + else 8.445 + print_failure "$msg" 8.446 + fail=$((fail+1)) 8.447 + fuser -k -m ${m} > /dev/null 2>&1 8.448 + fi 8.449 + done 8.450 + iter=$(($iter+1)) 8.451 + done 8.452 + # turn quota off 8.453 + quota=`awk -F: '/^[0-9]+:/{print $1}' /proc/vz/vzquota 2>/dev/null` 8.454 + for m in ${quota}; do 8.455 + __echo "Turn quota off for CT " 8.456 + echo -n $m 8.457 + msg=`vzquota off ${m} 2>&1` 8.458 + print_result "$msg" 8.459 + done 8.460 +} 8.461 + 8.462 +lockfile() 8.463 +{ 8.464 + local TEMPFILE="${1}.$$" 8.465 + local LOCKFILE="${1}" 8.466 + 8.467 + trap -- "rm -f ${LOCKFILE} ${TEMPFILE}" EXIT 8.468 + 8.469 + echo $$ > ${TEMPFILE} 2> /dev/null || { 8.470 + echo "Can't write to ${TEMPFILE}" 8.471 + } 8.472 + ln ${TEMPFILE} ${LOCKFILE} >/dev/null 2>&1 && { 8.473 + rm -f ${TEMPFILE}; 8.474 + return 0; 8.475 + } 8.476 + kill -0 `cat $LOCKFILE` >/dev/null 2>&1 && { 8.477 + return 1; 8.478 + } 8.479 + ln ${TEMPFILE} ${LOCKFILE} >/dev/null 2>&1 && { 8.480 + rm -f ${TEMPFILE}; 8.481 + return 0; 8.482 + } 8.483 + rm -f ${LOCKFILE} 8.484 + echo $$ > ${LOCKFILE} 8.485 + return 0 8.486 +} 8.487 + 8.488 +start() 8.489 +{ 8.490 + local veid 8.491 + local velist 8.492 + local msg 8.493 + local mod 8.494 + 8.495 + check_kernel 8.496 + check_kernel_config 8.497 + 8.498 + if ! lockfile $LOCKFILE; then 8.499 + __echo "OpenVZ is locked" 8.500 + print_failure 8.501 + return 1 8.502 + fi 8.503 + if [ -f ${SUBSYS_VZ} ]; then 8.504 + __echo "OpenVZ already running" 8.505 + print_failure 8.506 + return 1 8.507 + fi 8.508 + __echo "Starting OpenVZ: " 8.509 + load_modules "${IPT_MODULES}" 8.510 + for mod in $PRELOAD_MODULES; do 8.511 + /sbin/modprobe -r $mod >/dev/null 2>&1 8.512 + /sbin/modprobe $mod >/dev/null 2>&1 8.513 + done 8.514 + for mod in $MODULES; do 8.515 + /sbin/modprobe $mod >/dev/null 2>&1 8.516 + RETVAL=$? 8.517 + if [ $RETVAL -ne 0 ]; then 8.518 + print_failure "failed to load module ${mod}" 8.519 + return $RETVAL 8.520 + fi 8.521 + done 8.522 + load_modules "${MODULES_OTHER} ${VZFS_MODULES}" 8.523 + print_success "loading OpenVZ modules" 8.524 + 8.525 + if [ ! -e /dev/vzctl ]; then 8.526 + # On most modern distros udev will create a device for you, 8.527 + # while on the old distros /dev/vzctl comes with vzctl rpm. 8.528 + # So the below mknod call is probably not needed at all. 8.529 + /bin/mknod -m 600 /dev/vzctl c 126 0 > /dev/null 2>&1 8.530 + RETVAL=$? 8.531 + if [ $RETVAL -ne 0 ]; then 8.532 + print_failure "creating /dev/vzctl" 8.533 + return $RETVAL 8.534 + fi 8.535 + fi 8.536 + 8.537 + start_net 8.538 + setup_ve0 8.539 + setup_cron 8.540 + start_ves 8.541 + 8.542 + rm -f $LOCKFILE 8.543 + touch $SUBSYS_VZ 8.544 +} 8.545 + 8.546 +stop() 8.547 +{ 8.548 + local mod 8.549 + 8.550 + if ! lockfile $LOCKFILE; then 8.551 + __echo "OpenVZ is locked" 8.552 + print_failure 8.553 + RETVAL=1 8.554 + return 1 8.555 + fi 8.556 + 8.557 + stop_ves 8.558 + remove_cron 8.559 + stop_net 8.560 + __echo "Stopping OpenVZ: " 8.561 + for mod in ${MODULES_OTHER} ${MODULES} ${PRELOAD_MODULES} ${IPT_MODULES} ${VZFS_MODULES}; do 8.562 + /sbin/modprobe -r ${mod} > /dev/null 2>&1 8.563 + done 8.564 + rm -f $LOCKFILE 8.565 + rm -f $SUBSYS_VZ 8.566 + print_success 8.567 +} 8.568 + 8.569 +load_modules() 8.570 +{ 8.571 + local modules=$1 8.572 + local mod 8.573 + 8.574 + for mod in ${modules}; do 8.575 + if /sbin/lsmod | grep -qw ${mod}; then 8.576 + continue 8.577 + fi 8.578 + /sbin/modprobe ${mod} >/dev/null 2>&1 8.579 + done 8.580 +} 8.581 + 8.582 +# See how we were called. 8.583 +case "$1" in 8.584 + start) 8.585 + start 8.586 + ;; 8.587 + stop) 8.588 + stop 8.589 + ;; 8.590 + restart|force-reload) 8.591 + stop 8.592 + start 8.593 + ;; 8.594 + status) 8.595 + status 8.596 + RETVAL=$? 8.597 + ;; 8.598 + update-cron) 8.599 + update_cron 8.600 + RETVAL=0 8.601 + ;; 8.602 + *) 8.603 + echo "Usage: $0 {start|stop|status|restart|force-reload|update-cron}" 8.604 + exit 1 8.605 +esac 8.606 + 8.607 +exit $RETVAL
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/base-scripts/vzconf.sh Tue Nov 01 09:23:49 2011 +0100 9.3 @@ -0,0 +1,53 @@ 9.4 +#!/bin/sh 9.5 +# Set network bridge for OpenVZ server 9.6 +# 9.7 +# This program is free software; you can redistribute it and/or modify 9.8 +# it under the terms of the GNU General Public License as published by 9.9 +# the Free Software Foundation; either version 2 of the License, or 9.10 +# (at your option) any later version. 9.11 +# 9.12 +# This program is distributed in the hope that it will be useful, 9.13 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 9.14 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9.15 +# GNU General Public License for more details. 9.16 +# 9.17 +# You should have received a copy of the GNU General Public License 9.18 +# along with this program; if not, write to the Free Software 9.19 +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 9.20 +# MA 02110-1301, USA. 9.21 +# 9.22 +# 20011 - Eric Joseph-Alexandre <erjo@slitaz.org> 9.23 + 9.24 + 9.25 +CONFIG_DIR=/var/lib/slitaz-vz 9.26 + 9.27 +# Get real network device name from stored config if exist. 9.28 +if [ -f $CONFIG_DIR/network/interfaces ]; then 9.29 + BRIDGE=$(grep ^BRIDGE $CONFIG_DIR/network/interfaces | sed 's/.*"\(.*\)"/\1/') 9.30 + IFACE=$(grep ^INTERFACE $CONFIG_DIR/network/interfaces | sed 's/.*"\(.*\)"/\1/') 9.31 +else 9.32 + BRIDGE=br0 9.33 + IFACE=$(grep ^INTERFACE /etc/network.conf | sed 's/.*"\(.*\)"/\1/') 9.34 + 9.35 + # Store interface infos for the next boot in hd mode 9.36 + mkdir -p $CONFIG_DIR/network 9.37 + echo "BRIDGE=\"$BRIDGE\"" > $CONFIG_DIR/network/interfaces 9.38 + echo "INTERFACE=\"$IFACE\"" >> $CONFIG_DIR/network/interfaces 9.39 +fi 9.40 + 9.41 +# Set Brigde configuration 9.42 +if [ -x /usr/sbin/brctl ]; then 9.43 + if (/usr/sbin/brctl addbr $BRIDGE); then 9.44 + /sbin/ifconfig $IFACE down 9.45 + /sbin/ifconfig $IFACE 0 9.46 + /usr/sbin/brctl addif $BRIDGE $IFACE 9.47 + 9.48 + # Update INTERFACE in /etc/network.conf 9.49 + grep ^INTERFACE /etc/network.conf | grep -q $BRIDGE \ 9.50 + || sed -i "s/^INTERFACE=\"\(.*\)\"/INTERFACE=\"$BRIDGE\"/" /etc/network.conf 9.51 + else 9.52 + echo "Unable to set netwok bridge" 9.53 + fi 9.54 +else 9.55 + echo "Can't find brctl. Make sure you have installed brctl-utils" 9.56 +fi