Jump to content

Debian 6.0 startup/shutdown skripti


Ronalds
 Share

Recommended Posts

Dota kaste ar Oracle Vmbox virtuālajām mašīnam

Vajag lai viņas automātiski palaižas ieslēdzot dzelzi un saglabā stāvokli to izslēdzot.

Tika uzrakstīts skripts
 



#! /bin/sh
# /etc/init.d/vm_start
#

### BEGIN INIT INFO
# Provides:                     VMs
# Required-Start:               $local_fs $remote_fs $network vboxdrv vboxautostart-service
# Should-Start:
# Should-Stop:
# Required-Stop:
# Default-Start:                3 5
# Default-Stop:                 0 1 2 6
# X-Interactive:                true
# Short-Description:            virtual box
# Description:                  Start the virtual box
### END INIT INFO

LOG=/var/log/vm_start.log

# Carry out specific functions when asked to by the system
case "$1" in
  start)
     echo `date`   "Starting VMs " | tee -a $LOG
          
          modprobe ppdev
          chmod 666 /dev/parport0
          rmmod lp

          sudo -u virtual /usr/bin/VBoxManage startvm www --type headless 2>&1 | tee -a $LOG
          sudo -u virtual /usr/bin/VBoxManage startvm Likumi --type headless  2>&1 | tee -a $LOG
          sudo -u virtual /usr/bin/VBoxManage startvm Finanses --type headless  2>&1 | tee -a $LOG
          sudo -u virtual /usr/bin/VBoxManage startvm Server --type headless  2>&1 | tee -a $LOG
          
          
              ;;
                stop)
                
                echo `date` echo "Stopping VMs" | tee -a $LOG
                
		  echo "Stopping www" | tee -a $LOG
                sudo -u virtual /usr/bin/VBoxManage controlvm www savestate  2>&1   |  tee -a $LOG

		  echo "Stopping Likumi" | tee -a $LOG
                sudo -u virtual /usr/bin/VBoxManage controlvm Likumi savestate 2>&1 |  tee -a $LOG

		  echo "Stopping Finanses" | tee -a $LOG
                sudo -u virtual /usr/bin/VBoxManage controlvm Finanses savestate 2>&1 | tee -a $LOG

		  echo "Stopping Server" | tee -a $LOG
                sudo -u virtual /usr/bin/VBoxManage controlvm Server savestate   2>&1 | tee -a $LOG
                    ;;
                      *)
                echo "Usage: /etc/init.d/vm_start {start|stop}"
                exit 1
                ;;
                 esac
                                  
                 exit 0 

 
Saglabāts zem /etc/init.d/vm_start
Pievienots ar komandu update-rc.d vm_start defaults

Ja skriptu laižu ar roku no komandrindas viss notiek - gan apstājas mašīnas, gan palaižas.
Bet kad mēģinu restartēt serveri nekā... Skripts sāk strādāt, bet viņam nesanāk saglabāt mašīnu stāvokli - ir tāda sajūta ka pie shutdowna skripti izpildās paralēli un tiek kaut kas virtualbox vajadzīgs apstādināts pirms manējais skripts ir nostrādājis. Iespējams ka tiek nokauti virtuālo mašinu procesi. Izraku internetu krustu šķērsu bet neatradu kā sakanofigurēt tā lai sākumā izpildītos "vm_start stop", tiktu sagaidīts lai viņš pabaidzas un tikai tad pārējie shutdown skripti pildītos.

Labots - ronalds_
Link to comment
Share on other sites

* Liec lai skripts pārbauda vai VM ir nostopējies un tikai tad iet tālāk. Pārbaudi vai ir tādi procesi.

* Liec pauzi uz kādu laiku.

 

Saprotu, ka šie 4 shutdown ieraksti izpildās paralēli un viens uz otru negaida kad tie pabeigsies ?! :?

Link to comment
Share on other sites

https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

https://wiki.debian.org/LSBInitScripts

Šitos jau izrakāji, ja?

 

Reku šādu atradu, mož noder: http://www.novell.com/support/kb/doc.php?id=7002295

 

Good luck:

Under the LSB (Linux Standards Base), the start and stop order of services is controlled using the "insserv" package. This idiosyncrasy of Linux has the distinct advantage of providing a faster boot time, but does make things a little more complex.  

Link to comment
Share on other sites

ImissimI, paldies par linkiem - palīdzēja! 

 

Kaut ko līdzīgu biju atradis, bet nebiju atradis komandas:

 

/usr/share/insserv/check-initd-order -g > boot.dot
/usr/share/insserv/check-initd-order -g -k > reboot.dot
dotty boot.dot
dotty reboot.dot

 

Viņas zīmē grafu, kurš parāda kādā secībā startēsies un tiks apstādinātas servises.

 

Izpētot grafu atklāju ka gan manai, gan galvenais, oracle servisam vboxdrv nav norādīts nekas pie  Required-Stop.  Ierakstot tur $remote_fs viss notikās.

Link to comment
Share on other sites

Nice.

Prieks, ka palīdzēja.

Draņķīgi vienīgi, ka nācās rediģēt citus init skriptus vēl bez savējā - pie updeitiem var atkal ķēpa sanākt.

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...