Shell 获取进程号

1.由进程名得到进程id:  pidof  xx , 其中xx是进程名

2.由进程id得到进程名: readlink /proc/xxx/exe,其中xxx是进程的id

3.如果是shell程序,因为shell的进程名是相应的shell名,所以不能直接根据shell脚本的名字来获取其进程id,可以由以下两种方法(以sh为例):

(1)通过pidof sh得到所有的sh进程的pid的集合,然后再通过ps aux|grep xxx.sh得到的进程的id,来和前面得到的id进行匹配,如果匹配到的话,就说明匹配的id是该脚本的进程id.

(2)pid=`ps gaux | grep xxx.sh | grep -v grep | awk ‘{print $2}’`

 

以上是转载,下面说一下自己的实践,在脚本里面获取当前进程和子进程ID

a . sh

# ! / bin / sh

echo   $$   >  a . list

sh -c 
/ root / c . sh &

echo   $ >>  a . list


sleep 
100

 

 

c . sh

# ! / bin / sh

sleep 
100


通过$$和$!获取进程号

 

 

 

你可能感兴趣的:(shell)