无法使cronjob获得服务的状态

时间:2012-10-23 06:43:39

标签: linux bash cron upstart

我正在使用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

1 个答案:

答案 0 :(得分:1)

差异通常是环境变量。可能是PATH。运行

which status

显示正在运行的可执行文件,然后将该完整路径放入cron调用。