如果我执行以下命令,这只是一个永远等待的长命令
grep 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa abcd'
如果我搜索包含在long命令的最后一段中的pgrep -f
,则abcd
无法找到该进程。
ps auxww|grep abcd
找到了该过程,但我无法在脚本中使用它,因为它还会找到grep
进程自我。
如果只删除一个a
,那么pgrep -f abcd
可以找到进程,但是我有很长的命令参数,所以我遇到了这个pgrep
限制。
问题
根据唯一字符串abcd
检查此类流程的正确方法是什么?
答案 0 :(得分:5)
您可以通过以下任一命令找到编辑过的命令:
pgrep -f abcd
甚至:
ps uxww | grep '[a]bcd'
答案 1 :(得分:1)
让我试一试......
$ grep 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa abcd'
现在在另一个终端窗口中:
$ pgrep grep
1842
找到它,或者至少有一些grep
进程:
$ ps -f $(pgrep grep)
UID PID PPID C STIME TTY TIME CMD
501 1842 1836 0 8:59AM ttys004 0:00.00 grep aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa abcd
是的,这是找到的过程。
我们试试这个:
$ pgrep -f 'abcd'
1842
似乎适合我。