在cronjob中启动/停止systemd服务

use*_*931 5 shell cron systemd

  1. 我在/etc/systemd/system/bots.service中有一个服务名称bots
  2. 我有一个像这样的外壳脚本名称runcron.sh
service bots stop

service bots start
Run Code Online (Sandbox Code Playgroud)
  1. 如果我运行./runcron.sh,该服务将停止,然后成功启动,但是如果我将其放在这样的crontab中,它将无法成功运行

* / 5 * * * * /home/vps171-107/runcron.sh

如何使runcron.sh停止然后在crontab中启动bots服务?

更新

在@armnotstrong的帮助下,我将脚本更改为

/usr/sbin/service bots stop
/usr/sbin/service bots start
Run Code Online (Sandbox Code Playgroud)

而且有效!

arm*_*ong 4

可能是环境问题,crontab 可能执行命令时shbash尝试:

*/5 * * * * bash /home/vps171-107/runcron.sh
Run Code Online (Sandbox Code Playgroud)

  • 坑是你自己发现的。所以你应该自己回答这个问题并将其作为答案:D (3认同)