无法在重新启动或关闭之前执行脚本

Tap*_*ose 6 reboot shutdown scripts 18.04

我需要在系统关闭或重新启动之前执行脚本。

我创建了名为 的脚本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
Run Code Online (Sandbox Code Playgroud)

的文件权限shutdown-pulse为:

root@TanLap:/etc/init.d# ls -l shutdown-pulse
-rwxr-xr-x 1 root root 77 May 26 12:39 shutdown-pulse
Run Code Online (Sandbox Code Playgroud)

我在/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
Run Code Online (Sandbox Code Playgroud)

root@TanLap:/etc/rc6.d# ls -l K02shutdown-pulse 
lrwxrwxrwx 1 root root 24 May 26 12:45 K02shutdown-pulse -> ../init.d/shutdown-pulse
Run Code Online (Sandbox Code Playgroud)

我期待在我重新启动后看到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
Run Code Online (Sandbox Code Playgroud)

任何指针都会非常有助于找出问题。

注意:pulse是 Pulse Secure VPN Client

Lie*_*tok 6

如果你是一个较新的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
Run Code Online (Sandbox Code Playgroud)

要启用此功能,请运行

$ sudo systemctl daemon-reload
$ sudo systemctl enable pulse-vpn.service
Run Code Online (Sandbox Code Playgroud)