LoveUnix » 编程开发 & Rational » 请教!!Unix编程:如何监测另一程序是否运行??
让LU留住您的每

一天 让LU博客留住您的每一天
2007-1-11 07:02 cindy
请教!!Unix编程:如何监测另一程序是否运行??

我在编写一段Unix 程序, 要求程序查看另一Java程序是否运行,如果没有运行,则调用运行命令?该如何写呢?

2007-1-11 12:43 hellohb
顶。我也想知道

2007-1-11 14:58 universes
ps -ef 能得到所有在运行的process

2007-1-11 14:59 universes
这个用shell来实现就最容易了。。。
awk  ...

2007-1-11 15:02 universes
ps -ef | awk 'BEGIN{a=0} {if($x=="xxxx") a=1} END{if(a==0) call JavaProgram}'

用awk找有没有运行的程序,如果有就讲变量a置1。在结束的时候检查变量是否背设置成1,如果没有就说明没有运行。。。。

很久没写过shell了,大概就是这样

2007-1-12 06:40 cindy
如果我要运行的是jar文件: Monitoring.jar , 是不是就应该写成:

我将run command:java -jar Monitoring.jar,编辑进 run.sh

ps -ef | awk 'BEGIN{a=0} {if($x=="Monitoring.jar") a=1} END{if(a==0) call run.sh}'

???

[[i] 本帖最后由 cindy 于 2007-1-12 06:43 编辑 [/i]]

2007-1-12 09:13 universes
ps -ef | awk 'BEGIN{a=0} {if($x=="Monitoring.jar") {a=1; break/exit?? }} END{if(a==0) java -jar Monitoring.jar
在shell里和在命令行下运行程序是一样的
你自己试试吧,找个shell编程的书看看,尤其是有关awk的。

2007-1-12 09:19 universes
上面那个 $x=="" 中的x要换成具体的数字,就是你的 Monitoring.jar 在第几列显示。这是在awk中提到的

2007-1-12 11:42 cindy
能否在解释一下: Monitoring.jar 在第几列显示, 是什么意思? 多谢!

2007-1-12 12:41 cindy
知道了.

2007-1-12 13:39 cindy
问题解决,非常感谢!!!

2007-1-17 15:14 炸鸡
既然前面a==1就已经退出了,那后面的a==0不用在判断一次了吧,因为这是a一定是0

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.