web-dev-qa-db-fra.com

Impossible d'exécuter le script avant le redémarrage ou l'arrêt

Je dois exécuter un script avant l'arrêt ou le redémarrage du système.

J'ai créé le script appelé shutdown-Pulse, que je dois exécuter et placé sous /etc/init.d.

Le contenu du script est:

#!/bin/sh

echo "[`date`] Executing" > /var/log/shutdown-Pulse.log
# my script to shutdown Pulse
echo "[`date`] Done" > /var/log/shutdown-Pulse.log

Le droit de fichier de shutdown-Pulse est:

root@TanLap:/etc/init.d# ls -l shutdown-Pulse
-rwxr-xr-x 1 root root 77 May 26 12:39 shutdown-Pulse

J'ai créé deux liens symboliques sous /etc/rc0.d et /etc/rc6.d, portant respectivement le même nom 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

Et

root@TanLap:/etc/rc6.d# ls -l K02shutdown-Pulse 
lrwxrwxrwx 1 root root 24 May 26 12:45 K02shutdown-Pulse -> ../init.d/shutdown-Pulse

Je m'attendais à voir le fichier shutdown-Pulse.log créé sous /var/log avec du contenu après le redémarrage. Mais:

root@TanLap:/var/log# ls -l shutdown-Pulse.log
ls: cannot access 'shutdown-Pulse.log': No such file or directory

Tout pointeur serait très utile pour comprendre le problème.

Remarque: Pulse est le client Pulse Secure VPN.

6
Tapas Bose

Si vous utilisez une version plus récente d'ubuntu (Ubuntu 16.04 ou plus récente), vous devez utiliser systemdau lieu de sysvinitname__.

Un exemple pourrait ressembler à ceci (placez-le dans /etc/systemd/system/Pulse-vpn.service:

[Unit]
Description=Pulse VPN Client

[Service]
Type=simple
ExecStop=/path/to/your/script

[Install]
WantedBy=multi-user.target

Pour cela, lancez

$ Sudo systemctl daemon-reload
$ Sudo systemctl enable Pulse-vpn.service
6
Lienhart Woitok