LINUX.ORG.RU
решено ФорумAdmin

systemd и rc.local.shutdown

 ,


0

4

Требуется обеспечить замораживание виртуалки при завершении системы, раньше этот функционал обеспечивал rc.local.shutdown такого вида:

#!/bin/bash
#
# /etc/rc.local.shutdown: Local shutdown script.
#
su vbox -c "VBoxManage controlvm Server savestate"
Соответственно файл этот обрабатывался арчевскими initscripts.
Хотелось бы что бы systemd при выключении/перезагрузке запускал rc.local.shutdown. Нагуглил .service файл следующего вида:
[Unit]
Description=/etc/rc.local.shutdown Compatibility
After=rc-local.service
[Service]
Type=oneshot
ExecStart=/etc/rc.local.shutdown
StandardInput=tty
RemainAfterExit=yes
[Install]
WantedBy=shutdown.target
Also=rc-local.service
Проблема в том, что systemd при выключении не дожидается окончания выполнения команды заморозки и роняет виртуалку.
Как заставить systemd ждать?

заставить ждать можно попробовать так TimeoutStopSec= или

odm1n ()
Ответ на: комментарий от odm1n

Спасибо за ответ, но я нашел такое решение задачи. Для запуска rc.local и rc.local.shutdown использовать один rc-local.service следующего содержания:

[unit]
Description=/etc/rc.local Compatibility

[Service]
Type=oneshot
ExecStart=/etc/rc.local
ExecStop=/etc/rc.local.shutdown
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

v0mqfish ★★★ ()
Ответ на: комментарий от v0mqfish

я решил эту проблему так Конечно, не универсально,возможно не очень эстетично, но главное - исправно пашет.

[root@virt sbin]# cat reboot
#!/bin/bash
su vbox -c "vboxmanage controlvm 2008r2 savestate"
case "$0" in 
	"/sbin/reboot")
	/sbin/org_/reboot
;;
	"/sbin/halt")
	/sbin/org_/reboot -p
;;
	"/sbin/poweroff")
	 /sbin/org_/reboot -p
esac

l4h ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.