0

ドキュメントやオンラインを読んだことから、ほとんどの人はLinuxでプロセスを強制終了するには、コマンドkill"pid"だけが必要であると言っています。

For example to kill memcached would be kill $(cat memcached.pid)

しかし、上記のプロセスを含め、私が殺そうとしたほとんどすべてのプロセスでは、これは機能しません。私はそれを別のコマンドで動作させることができました:

ps aux | grep (process name here)

そのコマンドは、何らかの理由で、プログラムを強制終了するときに機能する別のpidを取得します。

私の質問は、なぜ異なるpidがあるのか​​ということだと思います。IDのポイントは一意ではありませんか?auxを使用するときに、セロリ、memcached、およびその他のプロセスすべてで異なるpidが使用されるのはなぜですか。grepコマンドと.pidファイルのpidの比較 これは私の構成のちょっとしたエラーですか、それともこのようなものですか?

また、Linuxの実行可能ファイルのすべての引数と説明を取得できるのはどこですか?

「man」コマンドは一部の機能に役立つことは知っていますが、たとえばセロリなどの多くの実行可能ファイルでは機能しません。

ありがとう!

4

1 に答える 1

1

プロセスID(pid)は、プロセスの起動時にオペレーティングシステムによってオンザフライで割り当てられます。2つのプロセスが同じIDを持たないという意味でユニークです。ただし、実際の値は、プロセスの実行ごとに同じであるとは限りません。それを考える最良の方法は、それらの「現在提供されている」チケットのようなものです。

番号を取ってください

psとを介してIDを検索できるのは正しいですが、次のgrepように使用する方が簡単な場合があります。

pgrep (process name here)

また、プロセスを強制終了するだけの場合は、上記の手順をスキップして次を使用することもできます。

pkill (process name here)
于 2012-09-29T17:09:12.873 に答える