Executar script antes do shutdown/restart, Systemd no Debian 8 [RESOLVIDO]

13. Re: Executar script antes do shutdown/restart, Systemd no Debian 8 [RESOLVIDO]

Jonatas Prust
JPrust

(usa Ubuntu)

Enviado em 01/06/2015 - 11:51h

Obrigado pela ajuda de vocês.

Consegui colocar o que eu queria para funcionar de duas formas:
1 - fazer o auto start e auto savestate das vms do virtualbox no debian 8 Jessie apontando para scripts.

O serviço ficou assim:
[Unit]
Description=VBox Virtual Machine Service
Requires=systemd-modules-load.service
After=systemd-modules-load.service

[Service]
Type=oneshot
ExecStartPre=/dados/dados/scripts/virtual/vboxservices.sh start
ExecStart=/dados/dados/scripts/virtual/vms.sh start
ExecStop=/dados/dados/scripts/virtual/vms.sh stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Os scripts:
nano /dados/dados/scripts/virtual/vms.sh 

case "$1" in
'start')
VBoxManage startvm shop-rga --type headless
;;
'stop')
VBoxManage controlvm shop-rga savestate
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0

e o outro serviço:
#!/bin/sh

case "$1" in
'start')
/sbin/modprobe vboxdrv
/sbin/modprobe vboxnetadp
/sbin/modprobe vboxnetflt
;;
'stop')
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0

Claro que os scripts podem ser mais bem elaborados, podendo também ser apenas 1 script, que verifica se os módulos foram carregados e depois inicializa as vms.

2 - fazer o auto start e auto savestate das vms do virtualbox no debian 8 Jessie sem scripts
[Unit]
Description=VBox Virtual Machine Service
Requires=systemd-modules-load.service
After=systemd-modules-load.service

[Service]
User=administrador
Group=vboxusers
ExecStart=/usr/bin/VBoxHeadless -s shop-rga
ExecStop=/usr/bin/VBoxManage controlvm shop-rga savestate

[Install]
WantedBy=multi-user.target


O outro serviço(o detalhe está no before, que faz com que este serviço seja executado antes do outro):
[Unit]
Description=Iniciar o modulo do virtualbox
Before=shop-rga.service

[Service]
User=root
Type=oneshot
ExecStart=/sbin/modprobe vboxdrv
ExecStart=/sbin/modprobe vboxnetadp
ExecStart=/sbin/modprobe vboxnetflt

[Install]
WantedBy=multi-user.target


Para realizar o desligamento do servidor pelo power button, tive que alterar apenas o arquivo /etc/acpi/powerbtn-acpi-support.sh
deixando apenas o comando shutdown -h now.

Agradeço a ajuda do fórum.


  


14. Re: Executar script antes do shutdown/restart, Systemd no Debian 8 [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 01/06/2015 - 15:34h

De nada.




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts