Fra*_*ing 7 shutdown systemd reboot
/usr/lib/systemd/system-shutdown/
Run Code Online (Sandbox Code Playgroud)
或在 Debian 中
/lib/systemd/system-shutdown/
Run Code Online (Sandbox Code Playgroud)
让它在重启或关机时执行。从
https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html:
在执行实际系统halt/poweroff/reboot/kexec systemd-shutdown 之前,将运行/usr/lib/systemd/system-shutdown/ 中的所有可执行文件,并向它们传递一个参数:“halt”、“poweroff”、“reboot” " 或 "kexec",取决于选择的操作。此目录中的所有可执行文件都是并行执行的,并且在所有可执行文件完成之前不会继续执行操作。
我的脚本在How to run a script at shutdown on Debian 9 or Raspbian 8 (Jessie) 中描述为:
#!/bin/sh
touch /test
Run Code Online (Sandbox Code Playgroud)
但是,它似乎无法在我的 Debian 系统上运行,我什至将其报告为bug。
事实上,脚本正在运行。正如 Bigon 和错误报告中指出的那样,touch只是无法生效,因为在/lib/systemd/system-shutdown/执行脚本时文件系统已经以只读方式挂载。
可以通过在以下之前安装和 fs 读写来证明这一点touch:
#!/bin/sh
mount -oremount,rw /
touch /test
mount -oremount,ro /
Run Code Online (Sandbox Code Playgroud)
现在/test重新启动后真的出现了。
但是,这也意味着通过此文件夹运行我的脚本将没有用,因为它发生得太晚了。
为了写入日志文件等,需要通过Bigon建议的服务提前运行脚本。我在How to run a script at shutdown on Debian 9 or Raspbian 8 (Jessie)解释了这一点。
| 归档时间: |
|
| 查看次数: |
15344 次 |
| 最近记录: |