我有这个脚本,我想让系统在关机时执行,并且只在关机时执行(或者重启)。这个脚本不会启动或停止服务器;它只是卸载一些文件系统。不幸的是,我发现的很多文档似乎都认为我要编写一个脚本来管理服务器,但这根本不是我要做的。
阅读http://tuxgraphics.org/npa/systemd-scripts/并且man systemd.service
并且man systemd.unit
(我甚至不确定我应该遵循什么)我有:
[Unit]
Description=My umount script
After=network.target syslog.target
[Service]
Type=oneshot
ExecStop=/home/PL/bin/umountb2.sh
StandardOutput=journal
但我不知道这是否正确,我甚至不确定它是否会在正确的时间执行。我需要它在所有常规用户注销后执行,但不是在卸载任何文件系统之前执行。
我正在运行 Ubuntu 22.04.2
编辑:现在配置文件如下所示:
Description=My special shutdown script
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/home/PL/bin/umountb2.sh
[Install]
WantedBy=multi-user.target
情况有所改善,但有一个问题,因为我的脚本调用cryptsetup
会返回错误。我认为它执行得太晚了,因为当我重新启动时,我运行journalctl -b -1 --dmesg
脚本后只有 3 条消息,第一条是:
内核:nfsd:最后一个服务器已退出,正在刷新导出缓存