【问题标题】:Controlling Daemon Software via Shell Script with Cron使用 Cron 通过 Shell 脚本控制守护程序软件
【发布时间】:2017-04-07 14:21:42
【问题描述】:

我最近在我的服务器 (Ubuntu 14.04.5 LTS) 上安装了“胖控制器”软件 (http://fat-controller.sourceforge.net/) 来守护我需要不断运行的 PHP 脚本。

它运行良好,但此时我必须使用以下命令从 shell 手动控制它。

开始

/etc/init.d/fatcontrollerd 启动

停止

/etc/init.d/fatcontrollerd 停止

它正在运行吗?

/etc/init.d/fatcontrollerd 状态

基本上,我想设置一个我用 cron 调用的 shell 脚本,它会执行与我手动执行的相同过程,每分钟自动执行一次(检查它是否正在运行 --> 如果是,则什么也不做 --> 如果它不是,开始吧)。

当我在 shell 中运行命令时键入“它正在运行”时,我得到响应“正在运行”。如果“正在运行”没有以“正在运行”响应,我该如何编写一个 shell 脚本来发送这个“正在运行”命令并运行“启动”命令?

我在 shell 方面非常缺乏经验,但确实让以前的守护程序脚本工作(失败得很惨)。所以我知道如何将它连接到 cron,我只是找不到有关如何自动运行这些命令、做出决定然后在必要时运行另一个命令的语法。

【问题讨论】:

    标签: php shell ubuntu


    【解决方案1】:

    您也可以在 php 中编写脚本,并且要运行外部进程并获取输出,您可以使用 shell-exec 函数,因此您可以使用以下内容:

    $output = shell_exec("/etc/init.d/fatcontrollerd status");
    if ($output == "Running") {
        // do what you need to do!!
    }
    

    【讨论】:

    • 感谢您的快速回复!如果可行,我会试一试并接受您的回答。
    • 我得到输出“您需要 root 权限才能运行此脚本”。如何授予 PHP 运行此命令的权限?
    • 搞定了:$output = trim(shell_exec("sudo /bin/daemonizer.sh status")); if($output == "Running") { $logTxt = "POLL DAEMON RUNNING - DO NOTHING"; } else { $startOutput = shell_exec("sudo /bin/daemonizer.sh start"); $logTxt = "POLL DAEMON NOT RUNNING - TRY TO RESTART!"; }
    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 2017-08-11
    • 2012-03-12
    • 1970-01-01
    • 2012-08-09
    相关资源
    最近更新 更多