我正在使用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,
albertof
答案 0 :(得分:1)
差异通常是环境变量。可能是PATH。运行
which status
显示正在运行的可执行文件,然后将该完整路径放入cron调用。