Не удалось выполнить сценарий перед перезагрузкой или выключением

Мне нужно выполнить скрипт перед отключением или перезагрузкой системы.

Я создал сценарий под названием 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

6
задан 26 May 2018 в 11:07

3 ответа

Если вы используете новую версию 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
6
ответ дан 8 June 2018 в 13:54

Если вы используете новую версию 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
6
ответ дан 17 July 2018 в 13:24

Если вы используете новую версию 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
6
ответ дан 20 July 2018 в 13:30

Другие вопросы по тегам:

Похожие вопросы: