Ubuntu 12.04 を使用しています。PID を介してプロセスを操作する方法を知りたいです。可能かどうかはわかりません。可能であれば、これについて私を助けてください。操作とは、ステータス、プロセスのプロパティ、および PID を介して処理するコマンドとデータの送信を意味します。
編集: ステータスとは、RAM の消費量などの動作統計を意味します。プロパティとは、そのプロセスに関する情報を意味します。ここで知りたい主なことは、PID を介して処理するコマンド/データの送信についてです。
procfsは、見ておくべきものです。プロセスに関する多くの情報を提供します。proc(5)のマンページは次のとおりです。基本的に、cd を実行する/proc/$PID
と、これらすべての疑似ファイルに表示できるはずの情報が含まれます。
それ以外の場合、遊ぶのに適したプログラムはtop
、またはそれ以上ですhtop
。あらゆる種類の信号を送信でき、多くの情報 (ステータス、メモリの使用状況、CPU の使用状況など) を観察できます。本当に素晴らしいです。
それとは別に、あなたが何をしようとしているのか明確ではないので、私はかなり一般的なままです. sarnold が言ったように、IPC (プロセス間通信) を実行したい場合は、シグナルまたは mmap が適している可能性があります。(メモリ マップト ファイル)
ps、kill、topは、プロセスとの対話に一般的に使用されます。それらのマニュアルページをお読みください。
psはスナップショットを提供しますが、通常はproc名からpidを取得します。
例えばps aux | grep -i sshd
topは、半連続的なフィードバックを提供します(構成可能なWindowsタスクマネージャーなど)
私の意見では、トップはmemの使用法の良いアイデアを与えるでしょう。ただし、最高の出力を構成するには、topのインタラクティブコマンドを使用する必要があります。ソートの場合は「o」を押し、フィールドの場合は「f」を押して、男性を読んでください。
killはデフォルトでSIGTERM(またはプロセスを停止するもの)を送信するか、procハンドラーがSIGTERMを無視している場合はkill -9を使用します。kill-sSIGNALは、SIGSTOP(procを停止)やSIGCONT(続行)のように任意のシグナルを送信するために使用できます。 proc)
プログラムによって、プロセス ID をパラメーターとして取得する方法が異なります。manページはここで役立ちます。
たとえばtop
、基本的なシステム統計のほとんどを提供します。プロセスの最上位の結果を取得するにはX
、このコマンドで必要な結果が得られますtop -n1 -b -p <pid of X>
また/proc/<pid>
、dirには必要なシステム統計がすべて含まれています。必要なのは、それらのデータをどこでどのように読み取るかを知っていることだけです。