我想通过安排每日自动关闭sudo service autoshutdown start
或通过 中止它sudo service autoshutdown stop
。
/etc/systemd/system/autoshutdown.service
[Unit]
Description=AutoShutdown
[Service]
User = root
Type = oneshot
ExecStart=/etc/systemd/system/autoshutdown.sh
ExecStop=/usr/bin/crontab -r
[Install]
WantedBy=multi-user.target
/etc/systemd/system/autoshutdown.sh
#!/bin/bash
echo "scheduling a shutdown 19:00..."
whoami
crontab -l | cat - /etc/systemd/system/autoshutdown.txt > crontab.txt && crontab crontab.txt
echo "crontab is now"
crontab -l
/etc/systemd/system/autoshutdown.txt
50 18 * * * /sbin/shutdown +10
一切都太棒了。所以start
ing service 运行正确,当status
ing service 时,我看到
[省略] autoshutdown.sh[11178]:安排关闭 19:00...
[省略] autoshutdown.sh[11178]: root
[省略] autoshutdown.sh[11178]: 50 18 * * * /sbin/shutdown +10
所以一切看起来都很好。然而,后者sudo crontab -l
返回一个空表。
我的 crontab 去“哪里”了?
可能[un]相关的问题:
答案1
好的,对于所需的行为,最合适的选项是RemainAfterExit=yes
(默认值:否)。
否则,一旦ExecStart
结束,ExecStop
立即执行。