ps -Afを使用してプロセス数を計算する

ps -Afを使用してプロセス数を計算する

リモートで使用しているコンピュータのemacsプロセス数を数えるには、ps -Afコマンドを使用する必要があります。どこから始めるべきですか?

答え1

ps -Af最善のアプローチではありません。

このfオプションは重複しており、emacs以外のプロセスがemacsまたはそれを引数の1つとして含む文字列を使用する場合(可能性が低い)、emacsというユーザーにとってはもちろん、偽の肯定を引き起こす可能性があります。

次の簡単なコマンドを使用することをお勧めします。

pgrep emacs | wc -l

答え2

あなたはできますps -C emacs --no-heading | wc -l

ps -C commandコマンド名によるプロセス出力

編集:ps --help非常に興味深い

答え3

Hennesが言ったように、ps -AF | grep emacs | wc -l""を使ってこれを行うことができます。しかし、そこには自分だけの命令もあります。このコマンドを削除するには、 " grep -v"(または--inverted-match)を使用して計算したくないコマンドをフィルタリングできます。したがって、次のようになります。ps -AF | grep emacs | grep -v grep | wc -l

答え4

最初の原則から始めてください。

まず、実行するコマンドが正確に何を使用しているか、および指定されたオプション(-Af)がどのように機能するかを確認してください。これを行うには、次の内容をお読みくださいman ps

-A はすべてのプロセスを選択します。
-f は完全な形式のリストを作成します。このオプションは、他の多くのUNIXスタイルオプションと組み合わせて使用​​して追加の列を追加できます。

したがって、開始点はユーザーのために実行されているすべてのプロセスの出力であり、完全な形式で一覧表示されます。処理を試みる前に、次のコマンドを実行して出力全体を確認してください。

ps -Af

プロセス数を計算するには、emacsフィルタツールを使用して出力をパイプ処理して処理するか、対応する一致を計算する必要があります。grep良い選択ですが、効率性とシンプルさのために、以下を使用してくださいawk

ps -Af | awk '/emacs/ && !/awk/ { a++ } END { print a }'

これはパターンを検索し/emacs/、検索自体からパターンを除いて!/awk/一致するものを追加し{ a++ }、合計を印刷します{ print a }

これはパイプラインのみを必要とし、検索プロセスがカウントを返さないという問題をエレガントに処理します。

関連情報