每个人都知道这有多烦人:
[mybox:~ #] ps aux | grep myservice
root 2273 0.0 0.0 4360 760 ? Ss 18:06 0:00 /usr/sbin/myservice
root 18590 0.0 0.0 4100 788 pts/2 S+ 21:21 0:00 grep myservice
你得到了你正在寻找的流程,以及grep。所以,你可以做到:
[mybox:~ #] ps aux | grep myservice | grep -v grep
root 2273 0.0 0.0 4360 760 ? Ss 18:06 0:00 /usr/sbin/myservice
或
[mybox:~ #] pgrep myservice
2273
但前者是3个完整命令,后者只获取进程ID。有没有更好的选择呢?
答案 0 :(得分:2)
如果您现在是流程的全名
ps -F -C myservice
但它不适用于myserv
'myserv*'
如果只知道部分命令,可以将命令减少到2:
ps aux | grep [m]yserv
答案 1 :(得分:2)
如何将管道命令存储到一个带有位置参数的小bash shell中?如果这是目标,这将减少击键。
[mybox:~ #] cat mycmd
#!/bin/bash
ps aux | grep $1 | grep -v grep
可以称之为:
[mybox:~ #] mycmd myservice
root 2273 0.0 0.0 4360 760 ? Ss 18:06 0:00 /usr/sbin/myservice
答案 2 :(得分:1)
ps
+ pgrep
可能吗?
$ ps -fp $(pgrep myservice)
UID PID PPID C STIME TTY TIME CMD
user 5422 5315 0 15:37 ? 00:00:04 /usr/bin/myservice