我的目标是每次启动后创建一个文件。下面的代码是简化版本。
这是systemd
服务单元文件/lib/systemd/system/createfile.service
:
[Unit]
Description=Creates a file
[Service]
Type=simple
ExecStart=touch /home/ubuntu/halfdan_was_here
[Install]
WantedBy=multi.user.target
systemctl start createfile.service
手动执行时将按/home/ubuntu/halfdan_was_here
预期创建。- 使用
journalctl -u createfile.service
服务执行情况报告 时$ journalctl -u createfile.service -- Logs begin at Thu 2022-09-01 12:58:03 CEST, end at Thu 2022-09-01 14:11:33 CEST. -- Sep 01 14:01:24 runner-0 systemd[1]: Started Creates a file. Sep 01 14:01:24 runner-0 systemd[1]: createfile.service: Succeeded.
- 使用后
systemctl enable createfile.service
服务显示为“已启用”:$ systemctl status createfile.service ● createfile.service - Creates a file Loaded: loaded (/lib/systemd/system/createfile.service; enabled; vendor preset: enabled) Active: inactive (dead)
- 手动删除文件并重新启动后,该文件不会被创建。
journalctl -u createfile.service
也没有显示它已被执行。 - 我也尝试过
Requires
&的不同设置After
,但没有成功。
谢谢您的任何建议!
答案1
我的目标是每次启动后创建一个文件。
我正在做同样的事情,最终我选择了简单的方法,并将其添加到我的用户的 crontab 中(使用crontab -e
):
@reboot touch /home/am/last_reboot
似乎创建 systemd 服务对于在启动时触碰文件来说有点过头了。crontab 的优点在于它绝对简单,对我来说这很有用!