记录进程是否处于活动状态

记录进程是否处于活动状态

我正在尝试制作一个网页来显示某个进程是否处于活动状态,但如何自动执行进程检查并将其写入 .txt 或 .html 文件,以便可以在我的网站上显示它?

答案1

您可以使用例如pgrep搜索具有特定名称的进程。

举个例子,我可以通过输入以下命令来查看音乐播放器 Rhythmbox 是否正在运行:

$ pgrep rhythmbox
827

如果打印了任何数字(并且退出状态为 0),则表示找到了匹配的进程。否则输出将为空,并且您将获得非零退出状态。

现在我们可以简单地在无限循环中反复运行它。为了节省资源,我们在每次迭代之间等待一秒钟。根据是否找到匹配的进程,下面的这个小脚本将写入yesno文件status.txt

#!/bin/bash
while sleep 1 ; do 
    if pgrep rhythmbox &>/dev/null ; then 
        echo "yes" > status.txt
    else 
        echo "no" > status.txt
    fi
done 

您还可以在循环内执行更有用的操作,例如在两个预制 html 文档之间切换符号链接。假设我们有running.html和,stopped.html并且希望将其中正确的一个链接为status.html,然后您的 Web 服务器就可以为其提供服务。它可能看起来像这样:

#!/bin/bash
while sleep 1 ; do 
    if pgrep rhythmbox &>/dev/null ; then 
        ln -s running.html status.html
    else 
        ln -s stopped.html status.html
    fi
done 

不过,我还没有测试过 Web 服务器对这种链接切换会做出怎样的反应,也有可能它会缓存内容,而更改不会立即生效,不知道。你得试试看。

相关内容