启动/关闭时 SystemD 服务触发器的正确​​形式

启动/关闭时 SystemD 服务触发器的正确​​形式

我无法让服务在启动和关闭时运行。启动后,我查询systemctl status scrThunderbirdProfileSync并得到

systemctl status scrThunderbirdProfileSync
● scrThunderbirdProfileSync.service - Script to sync Thunderbird Profile to msc004
   Loaded: loaded (/etc/systemd/system/scrThunderbirdProfileSync.service; enabled)
   Active: inactive (dead)

如果我尝试一下systemctl start scrThunderbirdProfileSync效果很好。 journalctl | grep scrThunderbirdProfileSync除非我手动启动服务,否则不会产生任何结果。

我哪里错了?有没有明显的错误?我是否应该查看两项单独的服务,一项用于启动,一项用于关闭?请注意,我选择了 SystemD 而不是 KDE 的自动启动等,因为注销时 kde 偶尔会冻结,我必须手动关闭service kdm.

语境:

我正在尝试在两个桌面(仅在我需要使用它们时才打开)和一个迷你桌面(始终打开)之间同步 Thunderbird 数据。

两个桌面上都有类似的脚本,它们应该在启动时触发以从服务器下载最新数据并上传尚未上传的较新文件,在桌面关闭时重复。

方法:

脚本:

echo "1: Starting Sync > upload..."
rsync -avzhu --progress /home/username/.thunderbird -e ssh root@server:/mnt/local/data/Personal/Thunderbird/
echo "2: Starting Sync > download..."
rsync -avzhu --progress -e ssh root@server:/mnt/local/data/Personal/Thunderbird/.thunderbird /home/username/

服务档案:

[Unit]
Description=Script to sync Thunderbird Profile to server
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target kexec.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/scrThunderbirdProfileSync
ExecStop=/usr/local/bin/scrThunderbirdProfileSync

[Install]
WantedBy=halt.target reboot.target shutdown.target kexec.target

答案1

检查你的日志,也许你需要等待网络

之后=网络.目标

不要忘记检查你的日志

sudo Journalctl -u scrThunderbirdProfileSync

相关内容