LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1327|回复: 9

哪位大哥帮额写个检测进程的脚本...额不会bash...谢谢阿...

[复制链接]
用户名用户名 该用户已被删除
发表于 2008-11-11 12:34:13 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
用户名用户名 该用户已被删除
 楼主| 发表于 2008-11-12 17:43:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-11-14 19:52:53 | 显示全部楼层
#!/bin/sh
x=`ps aux|grep -E "binName|startbin"|sed "/grep/d"`
if [[ -z $x ]]; then /mnt/sda1/binName; fi

#第一行是使用grep查找ps中包含binName或startbin的进程,注意grep一定要加-E,因为使用了正则表达式的形式,后面的sed是去掉grep时产生的关键字,最后将这个字符串赋给x
#第二行检查x是否为空串,如果为空就是进程中没有,就启动进程
回复 支持 反对

使用道具 举报

用户名用户名 该用户已被删除
 楼主| 发表于 2008-11-16 09:44:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-11-16 23:02:41 | 显示全部楼层
grep -E "WebqqSrv|cwebserver" 应该是可以的,记住加-E,中间的|代表或的意思,就是说查找WebqqSrv或cwebserver的关键字。或者用egrep "WebqqSrv|cwebserver", egrep与grep -E相同。

if [[ -z $x ]]; then echo $x; fi 这句当然会什么都打不出来,因为条件是if x字符串为空,就echo $x,当然只能打印一个空串出来。这里似乎可以去掉一对[],只用一对[]好像也没什么问题。加了一个!叹号后条件取反,语句就变成如果x不为空就打印。

再纠正一下,[ 不是if的括号,[ 是一个单独的bash命令。你可以ls -l /usr/bin/[ ,可以看到 [ 是一个单独的命令,本身与if没有关系。[ 实际和bash命令中的test等价。具体可以man test看到。在平时使用中 [ 要和 ] 配对,但是实际上 ] 是没有什么意义的,所以[ ]同我们平时习惯的括号还是有区别的。

知道了 [ 是一个命令,所以 [ 的左右必须有空格,因为命令之间和命令与参数之间是不能紧连的,必须有空格,记住这一点用起 [ 一般就不会报出语法错误了(但是为什么可以[[连用,说实话我也不知道,望知道的朋友赐教)。
回复 支持 反对

使用道具 举报

用户名用户名 该用户已被删除
 楼主| 发表于 2008-11-17 01:10:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-11-17 14:52:24 | 显示全部楼层
不好意思,关于 [ 的描述上面的回复有些问题。现在的shell如bash中,都包含了 [ 这条内部命令(builtin command),而/usr/bin/[是一个外部命令(外部应用程序)。对于bash来说,它执行时默认的查找次序为函数、内部命令、外部命令,因此,上述脚本中的[实际是bash的内部命令,而不是/usr/bin/[。 而且,man bash可以看到,对于这种条件表达式,可以使用test内部命令或 [ 内部命令实现,同时,bash还支持 [[ 这种复合命令实现对条件表达式的判断。

也就是说现在/usr/bin/[这条命令基本上都不用了,一般使用的是bash的内部命令,但二者功能是一样的。
回复 支持 反对

使用道具 举报

用户名用户名 该用户已被删除
 楼主| 发表于 2008-11-17 20:24:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2008-11-17 23:17:16 | 显示全部楼层
哦,试了一下,问题是这样的:
脚本本身的名字叫做WebqqSrv,当这个脚本运行时进程中是存在WebqqSrv的,运行到grep -E "WebqqSrv|cwebserver"这句时,会grep到,所以就走到另一个分支了。实际就是在自己的进程中检测自己是否运行,当然是运行的了。

这个脚本应该不是并发执行的,grep "cwebserver"即可,没必要检测WebqqSrv是否运行,确保WebqqSrv的运行间隔即可。
回复 支持 反对

使用道具 举报

用户名用户名 该用户已被删除
 楼主| 发表于 2008-11-18 00:20:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表