-1

誰もがこれがどれほど迷惑かを知っています:

[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のみを取得します。より良い代替案はありますか?

4

3 に答える 3

2

あなたが今プロセスのフルネームなら

ps -F -C myservice

myservしかし、それはで動作しません'myserv*'

部分的なものしかわからない場合は、コマンドを2に減らすことができます。

ps aux | grep [m]yserv
于 2013-03-22T19:43:49.210 に答える
2

パイプされたコマンドを、位置パラメーターを受け取る小さなbashシェルに格納するのはどうですか?それが目標である場合、これはキーストロークを減らすでしょう。

[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
于 2013-03-25T18:23:13.253 に答える
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
于 2013-03-22T19:32:37.433 に答える