【发布时间】:2015-12-05 20:11:32
【问题描述】:
mySample.sh
pid=$(ps -Af | grep $1 | grep -v grep | awk ' { print $2 } ');
echo $pid
上面的命令正在打印并杀死为 grep 创建的临时进程
即使我没有使用 Abcd 运行任何进程,
这是打印 pid
任何忽略它的方法,
我实际上使用grep -v 忽略它,仍然...
./mySample.sh Abcd
6251 6378 6379
获取进程ID有什么问题吗?
基本命令行输出如下,运行名为 Acc_Application_One 的进程后
[root@localhost 桌面]# ps -Af | grep 加号
root 6251 2758 0 16:16 pts/1 00:00:00 ./Acc_Application_One
root 7288 2758 0 16:57 pts/1 00:00:00 grep Acc
更改了 mySample.sh
pgrep -fl "$1"
输出是
[root@localhost 桌面]# mySample.sh Acc_Application_One
6251 7289
【问题讨论】:
-
你还需要用
grep -v忽略mySample进程。 -
大多数
pss 都有tree选项。在你的脚本之外做一些调试,看看你的./mySample.sh的进程tree是什么样子的。如果你幸运的话,你的系统我有pstree $PID可用。祝你好运。