现在我问题是我想用shell程序实时的查询cap.sh进程是否已经执行完毕或者是否正在执行中。如果正在执行中,那么想得到他的pid的号,以便我在前台进行kill掉。请教这个shell怎么写?有我发现我在cap.sh中用$$得到pid,与ps -ef|awk '/cap.sh/{print $2}'得到怎么会不一样啊?
13 个解决方案
#1
或者说如何得到cap.sh中正在运行的进程号??
#2
你是想得到cap.sh这个的进程号,还是想得到cap.sh中tcpdump等程序的进程号?
#3
谢谢回复
其实我想得到当前cap.sh正在运行的子进程号,因为cap.sh中有三个子进程,tcpdump不一定在运行,有可能运行完毕,正在运行psml程序。
其实我想得到当前cap.sh正在运行的子进程号,因为cap.sh中有三个子进程,tcpdump不一定在运行,有可能运行完毕,正在运行psml程序。
#4
一个程序在每次运行,都可能用的不一样的pid,用pid不足以标识
#5
是啊,我这么想的。要不就是先得到cap.sh进程号,然后再通过这个父进程号得到cap.sh中正在运行的子进程号。这样可以吗
#6
在sh里用ps、grep、awk一类的命令去查找不就行咯
#7
killall就可以了,不用查询进程号吧
#8
可惜我不会啊,可以给我一个示范吗?就是由父进程号得到子进程号
#9
顶~~~~
#10
一个程序在每次运行,都可能用的不一样的pid。
pid只是标识的是本次程序的运行标识,但是,它是现存的唯一标识。
pid只是标识的是本次程序的运行标识,但是,它是现存的唯一标识。
#11
请教如何由父进程得到子进程的的pid啊
#12
或者如何用pstree -p实现由父进程的pid得到正在运行的子进程的pid呢??谢谢
#13
ding
#1
或者说如何得到cap.sh中正在运行的进程号??
#2
你是想得到cap.sh这个的进程号,还是想得到cap.sh中tcpdump等程序的进程号?
#3
谢谢回复
其实我想得到当前cap.sh正在运行的子进程号,因为cap.sh中有三个子进程,tcpdump不一定在运行,有可能运行完毕,正在运行psml程序。
其实我想得到当前cap.sh正在运行的子进程号,因为cap.sh中有三个子进程,tcpdump不一定在运行,有可能运行完毕,正在运行psml程序。
#4
一个程序在每次运行,都可能用的不一样的pid,用pid不足以标识
#5
是啊,我这么想的。要不就是先得到cap.sh进程号,然后再通过这个父进程号得到cap.sh中正在运行的子进程号。这样可以吗
#6
在sh里用ps、grep、awk一类的命令去查找不就行咯
#7
killall就可以了,不用查询进程号吧
#8
可惜我不会啊,可以给我一个示范吗?就是由父进程号得到子进程号
#9
顶~~~~
#10
一个程序在每次运行,都可能用的不一样的pid。
pid只是标识的是本次程序的运行标识,但是,它是现存的唯一标识。
pid只是标识的是本次程序的运行标识,但是,它是现存的唯一标识。
#11
请教如何由父进程得到子进程的的pid啊
#12
或者如何用pstree -p实现由父进程的pid得到正在运行的子进程的pid呢??谢谢
#13
ding