如何写一个shell判断指定进程是否还存活

为当前最终发行版之前的所有版本提供支持
回复
anelyz
帖子: 19
注册时间: 2008-04-26 13:29
送出感谢: 0
接收感谢: 0

如何写一个shell判断指定进程是否还存活

#1

帖子 anelyz » 2008-07-14 10:15

想写一个shell判断指定进程是否还在,如果不在了就自动补上。
我现在用的pidof命令shell如下:
while true
do
if pidof -s gs gs01
then
sleep 60
else
cd /root/pwserver/gamed/
./gs gs01 &
sleep 5
fi
done
但这里出现了一个问题,ps -aux里边有很多类似于 gs is01、gs is02这样的进程,如果gs gs01掉了,pidof会反回一个其它以gs开头的进程给我,这样就无法实现监控了,哪位老大帮帮忙。
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市
送出感谢: 2 次
接收感谢: 0

#2

帖子 Nile » 2008-07-14 10:32

用通配符
如:
ps aux | grep -E "gs is[0-9][0-9]$"
Thinkpad T400
anelyz
帖子: 19
注册时间: 2008-04-26 13:29
送出感谢: 0
接收感谢: 0

#3

帖子 anelyz » 2008-07-14 11:12

Nile 写了:用通配符
如:
ps aux | grep -E "gs is[0-9][0-9]$"
但是怎么用这个命令判断进程是否还在呢?
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市
送出感谢: 2 次
接收感谢: 0

#4

帖子 Nile » 2008-07-14 11:15

anelyz 写了:
Nile 写了:用通配符
如:
ps aux | grep -E "gs is[0-9][0-9]$"
但是怎么用这个命令判断进程是否还在呢?
直接if就行,grep的搜索到返回值0,搜索不到返回1
Thinkpad T400
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#5

帖子 eexpress » 2008-07-14 11:23

pgrep scim || nohup scim &
● 鸣学
anelyz
帖子: 19
注册时间: 2008-04-26 13:29
送出感谢: 0
接收感谢: 0

#6

帖子 anelyz » 2008-07-14 13:16

Nile 写了:
anelyz 写了:
Nile 写了:用通配符
如:
ps aux | grep -E "gs is[0-9][0-9]$"
但是怎么用这个命令判断进程是否还在呢?
直接if就行,grep的搜索到返回值0,搜索不到返回1
问题解决,谢了
回复

回到 “老旧版本支持”