3

当系统重新启动时,我正在使用 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,

阿尔伯托夫

4

1 回答 1

1

区别通常是环境变量。可能的路径。跑

which status

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

于 2012-10-23T06:49:29.677 回答