![记录进程是否处于活动状态](https://linux22.com/image/1152988/%E8%AE%B0%E5%BD%95%E8%BF%9B%E7%A8%8B%E6%98%AF%E5%90%A6%E5%A4%84%E4%BA%8E%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81.png)
我正在尝试制作一个网页来显示某个进程是否处于活动状态,但如何自动执行进程检查并将其写入 .txt 或 .html 文件,以便可以在我的网站上显示它?
答案1
您可以使用例如pgrep
搜索具有特定名称的进程。
举个例子,我可以通过输入以下命令来查看音乐播放器 Rhythmbox 是否正在运行:
$ pgrep rhythmbox
827
如果打印了任何数字(并且退出状态为 0),则表示找到了匹配的进程。否则输出将为空,并且您将获得非零退出状态。
现在我们可以简单地在无限循环中反复运行它。为了节省资源,我们在每次迭代之间等待一秒钟。根据是否找到匹配的进程,下面的这个小脚本将写入yes
或no
文件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 服务器对这种链接切换会做出怎样的反应,也有可能它会缓存内容,而更改不会立即生效,不知道。你得试试看。