2016-07-28 6 views
2

コマンドラインでプロセスのPID、つまり "cron"を取得します。 次のスクリプトを試しました。コマンドラインでプロセスのPIDを抽出する方法

ps ax|grep 'cron' 

が、私は、私はこのことからPIDを抽出する方法

1427 ?  Ss  0:00 /usr/sbin/cron -f 
24160 pts/5 S+  0:00 grep --color=auto cron 

、テーブルの一部を取得していますか?例えばこのよう

+2

使用: 'pgrep cron' – sat

答えて

1

、:

ps -ef|grep 'cron'|grep -v grep|awk '{print $2}' 
+0

ここにgrepプロセスを除外するためのショートカットがあります:' ps -ef | awk '/ [c] ron/{print $ 2}' ' –

3

ただ、他のコマンドを使用し、それらの後処理アクションを適用することではなく、pidofを使用しています。

$ pidof cron 
22434 

-sフラグを使用

-s シングルショット、一つだけPIDがプロセスにに関係するコマンドのリターンを作るために - これは一つだけのpidを返すようにプログラムに指示します。

1

これを試すことができます。

ps -o pid,sess,cmd afx | egrep "(|/)cron(-f)?$" 

または

pstree -pas <cronPID> 
3

pgrepユーティリティは、その引数に一致する現在実行中のプロセスのプロセスIDを返します。

$ pgrep cron 
228 

それは物事「のためにはgrep」にも使用することができますコマンドラインで:

$ pgrep -f uerfale 
69749 
69752 

$ pgrep -l -f uerfale 
69749 slogin uerfale 
69752 slogin: /home/kk/.ssh/sockets/uerfale-9022-kk.sock [mux] m 

プロセスをkillするには、pkillを使用します。 pgrepと同じ方法で動作しますが、プロセスIDを出力する代わりに、一致したプロセスに信号を送信します。

関連する問題