是否可以运行脚本前关闭?这意味着系统仍然完全正常运行。
我尝试将关机脚本放入 中/lib/systemd/system-shutdown/test-script
。它将被执行,但据我了解,它仅在关机前立即执行。例如,磁盘已以只读模式安装。这可以修复,但使用以下命令包装脚本:
#!/bin/bash
mount -oremount,rw /
... do something ...
mount -oremount,ro /
我需要但无法实现的是互联网连接。执行脚本时,互联网连接似乎不再可用。
是否可以在关机协议开始时运行脚本?
我正在使用 Ubuntu 16.04 进行测试。
答案1
我找到了答案https://unix.stackexchange.com/q/39226/29509。
总而言之,这个解决方案对我有用(在 Ubuntu 16.04 上):
创建文件/etc/systemd/system/my-cleanup.service
:
[Unit]
Description=Test cleanup at shutdown
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/path/to/my-cleanup-script.sh
[Install]
WantedBy=multi-user.target
(假设关机脚本在下可用/path/to/my-cleanup-script.sh
并且可以执行。)
最后,通过以下方式启用 systemd 服务:
sudo systemctl enable my-cleanup.service
sudo systemctl start my-cleanup.service
答案2
关于答案 1。我相信该解决方案将在关机“期间”起作用,但正如 OP 所问it will run right at the begin of the shutdown
,我不确定。
此链接更明确地说明了关机期间执行脚本的时间:http://ccm.net/faq/3348-execute-a-script-at-startup-and-shutdown-on-ubuntu
请注意,我没有在我的系统中进行测试,我只是传达我的发现。