Мне нужно выполнить скрипт перед отключением или перезагрузкой системы.
Я создал сценарий под названием shutdown-pulse, который мне нужно выполнить и разместить в разделе /etc/init.d.
Содержимое скрипта:
#!/bin/sh
echo "[`date`] Executing" > /var/log/shutdown-pulse.log
# my script to shutdown pulse
echo "[`date`] Done" > /var/log/shutdown-pulse.log
Разрешение файла shutdown-pulse:
root@TanLap:/etc/init.d# ls -l shutdown-pulse
-rwxr-xr-x 1 root root 77 May 26 12:39 shutdown-pulse
Я создал две символические ссылки в /etc/rc0.d и /etc/rc6.d, с тем же именем K02shutdown-pulse:
root@TanLap:/etc/rc0.d# ls -l K02shutdown-pulse
lrwxrwxrwx 1 root root 24 May 26 12:45 K02shutdown-pulse -> ../init.d/shutdown-pulse
И
root@TanLap:/etc/rc6.d# ls -l K02shutdown-pulse
lrwxrwxrwx 1 root root 24 May 26 12:45 K02shutdown-pulse -> ../init.d/shutdown-pulse
Я ожидал увидеть файл shutdown-pulse.log, созданный в /var/log с некоторым содержимым после перезапуска. Но:
root@TanLap:/var/log# ls -l shutdown-pulse.log
ls: cannot access 'shutdown-pulse.log': No such file or directory
Любой указатель очень полезен для выяснения проблемы.
Примечание: импульс - это импульсный клиент VPN VPN
Если вы используете новую версию ubuntu (ubuntu 16.04 или новее), вы должны использовать systemd вместо sysvinit.
Пример может выглядеть так (поместите его в /etc/systemd/system/pulse-vpn.service:
[Unit]
Description=Pulse VPN Client
[Service]
Type=simple
ExecStop=/path/to/your/script
[Install]
WantedBy=multi-user.target
Чтобы включить это, запустите
$ sudo systemctl daemon-reload
$ sudo systemctl enable pulse-vpn.service
Если вы используете новую версию ubuntu (ubuntu 16.04 или новее), вы должны использовать systemd вместо sysvinit.
Пример может выглядеть так (поместите его в /etc/systemd/system/pulse-vpn.service:
[Unit]
Description=Pulse VPN Client
[Service]
Type=simple
ExecStop=/path/to/your/script
[Install]
WantedBy=multi-user.target
Чтобы включить это, запустите
$ sudo systemctl daemon-reload
$ sudo systemctl enable pulse-vpn.service
Если вы используете новую версию ubuntu (ubuntu 16.04 или новее), вы должны использовать systemd вместо sysvinit.
Пример может выглядеть так (поместите его в /etc/systemd/system/pulse-vpn.service:
[Unit]
Description=Pulse VPN Client
[Service]
Type=simple
ExecStop=/path/to/your/script
[Install]
WantedBy=multi-user.target
Чтобы включить это, запустите
$ sudo systemctl daemon-reload
$ sudo systemctl enable pulse-vpn.service