【问题标题】:Start/stop a systemd service in cronjob在 cronjob 中启动/停止 systemd 服务
【发布时间】:2017-06-24 04:35:56
【问题描述】:
  1. 我在 /etc/systemd/system/bots.service 中有一个服务名称 bots
  2. 我有一个类似这样的 shell 脚本名称 runcron.sh
service bots stop

service bots start
  1. 如果我运行 ./runcron.sh 服务将停止然后成功启动,但如果我将它放在这样的 crontab 中,它将无法成功运行

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

如何让 runcron.sh 停止然后在 crontab 中启动机器人服务?

更新

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

/usr/sbin/service bots stop
/usr/sbin/service bots start

而且它有效!

【问题讨论】:

    标签: shell cron systemd


    【解决方案1】:

    这可能是环境问题,crontab 可能会使用sh 而不是bash 尝试执行命令:

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

    【讨论】:

    • bash /home/vps171-107/runcron.sh>> /tmp/cron.log 2>&1 尝试重定向错误日志看看发生了什么
    • 它说 /home/vps171-107/runcron.sh: line 2: service: command not found
    • 如果我更改为 /usr/sbin/service 机器人停止它的工作。非常感谢。
    • 很高兴能帮上忙:D
    • 你自己找到了坑。所以你应该自己回答这个问题并将其作为答案:D
    猜你喜欢
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-09
    • 2017-03-17
    • 1970-01-01
    • 2021-01-08
    • 2018-12-20
    相关资源
    最近更新 更多