【发布时间】:2015-05-07 06:09:29
【问题描述】:
我已经编写了以下脚本
#! /bin/bash
function checkIt()
{
ps auxw | grep $1 | grep -v grep > /dev/null
if [ $? != 0 ]
then
echo $1"bad";
else
echo $1"good";
fi;
}
checkIt "nginx";
checkIt "mysql";
checkIt "php5-fpm";
这里的问题似乎是最后一次检查checkIt "php5-fpm" 始终返回 php5-fpmbad。由于连字符,问题似乎出现了。如果我只做checkIt "php5" 我会得到预期的结果。我实际上可以摆脱它,因为我没有任何其他以 php5 开头或包含 php5 的进程。然而,它变成了一种黑客,总有一天会抬起它丑陋的脑袋。如果有人能告诉我如何让 checkIt "php5-fpm" 工作,我将不胜感激。
【问题讨论】:
-
您意识到如果您使用命令行
vi nginx.xml运行应用程序,您的脚本会认为 nginx 正在运行? -
再一次 - 评论与我的问题几乎是正交的。
-
可能没什么区别,但你应该引用
"$1" -
如果机器上的其他人正在运行像
vim nginx-instructions.txt这样的命令,你的函数会报告 nginx 正在运行,无论它是否真的在运行。不要重新发明已经存在的许多服务监控程序。
标签: bash