【问题标题】:Cannot make a cronjob get the status of a service无法让 cronjob 获取服务的状态
【发布时间】:2012-10-23 06:43:38
【问题描述】:

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

阿尔伯托夫

【问题讨论】:

    标签: linux bash cron upstart


    【解决方案1】:

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

    which status
    

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

    【讨论】:

    • 你让我开心。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多