linux - 无法使 cronjob 获取服务状态

标签 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,

艾伯特

最佳答案

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

which status

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

关于linux - 无法使 cronjob 获取服务状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024864/

相关文章:

php - 在 PHP 中获取上周日日期

c - 如果您 fork() 并且 fork 的(子)进程退出,所有 VM 页面在父进程中是否仍标记为 COW?

linux - centos samba文件夹共享读取为文件

bash - 如何删除符号链接(symbolic link)未指向的所有子目录?

linux - Bash 脚本 : cd No such file or directory when file exists

ruby-on-rails - 有没有更好的方法来记录每天某个属性的值?

google-app-engine - 谷歌应用引擎 API : Running large tasks

linux - 有人使用 netlink 进行 IPC 吗?

python - Theanos安装报错linux编译报错

linux - gnu make - 确定 stdout 是否是终端