我正在使用 Upstart 在系统重新启动时运行一些服务。这些服务应该一直在运行。我注意到其中一些最终崩溃了,所以我正在尝试(但没有成功)创建一个看门狗脚本。
此脚本将检查服务的状态。如果该服务已关闭,则它应该启动该服务并向我发送有关该问题的电子邮件。电子邮件脚本在 php 中,没问题。
看门狗 bash 脚本的问题是,如果我手动启动脚本,我只能执行脚本并读取服务的状态。当使用 cronjob 执行脚本时,我得到一个“空状态”输出。
我给你看脚本:
#!/bin/bash
# Check the service
status=$(status SERVICE | awk '{print $2}')
echo "Status of the SERVICE: $status"
当我手动执行它时,我得到:
Status of the SERVICE: stop/waiting
如果使用 cronjob 执行它,我会得到:
Status of the SERVICE:
如您所见,在使用 cronjob 执行脚本时我没有得到任何输出。简而言之,cronjob 正在运行,但没有向我提供服务的状态。
希望你的X-vision能看到我看不到的错误。
BR,
艾伯特
最佳答案
区别通常是环境变量。可能是路径。运行
which status
显示它正在运行的可执行文件,然后将该完整路径放入 cron 调用中。
关于linux - 无法使 cronjob 获取服务状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024864/