pidofに代わるものはありますか? (より小さな設置スペース)

pidofに代わるものはありますか? (より小さな設置スペース)

pidofまあ、私はinが広く使われていました。間隔が非常に短いです。、一見小さなツールも素晴らしいツールになることができますCPU使用量。 (出典top:)
私の既存のコンピュータでは短い時間ですが、特に一括使用時に簡単に30%で頂点に達することができましたが、プロセスのPIDを見つけるなどの簡単な作業の場合、このようなツールが必要になると思います。便利です。占有スペースはそのスペースの1/5でなければなりませんpidof

そのため、組み込みの標準ツールを使用してプロセスID照会を「構築」する方が賢明かどうか疑問に思います。もしそしてフルパイプライン実行によるCPU負荷は一定に保たれます。次のような独立運転による負荷pidof

また、知っておくと面白いでしょう。これらのピークが発生しました。たぶんあなたの誰かがpidofコードを深く掘り下げましたか? :)

答え1

以下は、「apache2」というプロセスのpidを見つけるいくつかの例です。それらの間には若干の違いがありますが(出力の改行)、pidofパイプなどでは同じように動作しなければなりません。

使用pidof:

$ pidof apache2
31751 31750 31749 31748 31747 31489 31488 31487 31486 31485 1500

改行区分:

$ ps aux | grep apache2 | grep -v grep | awk -n '{print $2}'
1500 
31485 
31486 
31487 
31488 
31489 
31747 
31748 
31749 
31750 
31751 

スペースで区切られた:

$ ps aux | grep apache2 | grep -v grep | awk -n '{printf $2" "}'
1500 31485 31486 31487 31488 31489 31747 31748 31749 31750 31751 

上記のコマンドに愚かなタイミングを適用しました。

$ date +%T:%N; pidof apache2 ;  date +%T:%N
17:06:05:627088798
31751 31750 31749 31748 31747 31489 31488 31487 31486 31485 1500
17:06:05:634500908

$ date +%T:%N; ps aux | grep apache2 | grep -v grep | awk -n '{printf $2" "}' ;  date +%T:%N
17:06:29:887314682
1500 31485 31486 31487 31488 31489 31747 31748 31749 31750 31751
17:06:29:903997288

pidof:7,412,110ナノ秒

添付ファイル:|クエリ:16,682,606ナノ秒

マイ コンピューターでは、期待pidofどおりに高速に読み込まれます。

の出力はpidof逆順にソートされているように見えるので、これが私が好む代替注文になります。

$ ps aux | grep apache2 | grep -v grep | awk -n '{print $2}' | sort -rn
31751
31750
31749
31748
31747
31489
31488
31487
31486
31485
1500

答え2

pidof30%上昇がおかしいことに同意します。しかし、これが単に一時的な急増であれば悪いのでしょうか?

または.exampleを使用できますps(1)

$ ps ax | grep firefox
8621 ??  S       5:20.24 firefox
10409 p3  R+      0:00.00 grep firefox

答え3

プロセス(pgrep、pkillなど)を管理する一連のコマンドがあるため、最良の方法は次のとおりです(macOSXの場合)。

$ ps -ef | pgrep login
102
103
6245
6361

...または逆の順序で:

$ ps -ef | pgrep login | sort -rn
6361
6245
103
102

...または最後のもの:

$ ps -ef | pgrep login | sort -rn | head -n 1
6361

関連情報