当我在启动进程的Linux脚本中运行命令时,我想在变量中捕获该命令的进程号以供以后使用(即稍后将其删除)。
这是启动流程的命令
./run external
会是这样的:
./run external/ pid=$!?
手动我做:ps -ef|grep run
,它给了我一个进程ID然后我可以手动杀死它但我想在一个变量中捕获脚本中的PID,所以我可以说:kill $variable
(其中包含PID值。)
想法?
答案 0 :(得分:1)
在后台运行的任务的PID为$!
$ sleep 30 &
[1] 21493
$ echo $!
21493
$ ps -ef | grep sleep
dbj 21493 21414 0 11:42 pts/26 00:00:00 sleep 30
所以你应该能够捕获该值并在以后杀死该PID。
答案 1 :(得分:0)
您可以扩展手动方法以使其自动运行:
pid=$(ps -ef | grep run | grep -v grep | awk '{print $2}')