尝试正确获取 systemd 脚本的时间

尝试正确获取 systemd 脚本的时间

我有这个脚本,我想让系统在关机时执行,并且只在关机时执行(或者重启)。这个脚本不会启动或停止服务器;它只是卸载一些文件系统。不幸的是,我发现的很多文档似乎都认为我要编写一个脚本来管理服务器,但这根本不是我要做的。

阅读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:最后一个服务器已退出,正在刷新导出缓存

相关内容