Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> LinuxシステムFAQ >> Linuxプロセス管理関連の内容

Linuxプロセス管理関連の内容

  
        3。コマンドパラメータ:-l signal、シグナルのnumberパラメータが追加されていない場合、すべてのシグナル名を一覧表示するには、-l'パラメータを使用します。-a現在のプロセスを処理するとき、コマンド名とプロセス番号の対応は制限されません。シグナルを送信せずに関連プロセスのプロセスIDのみを出力するには、killコマンドを指定します。-s送信シグナルを指定します。-uユーザーを指定します。注:1. killコマンドには、シグナル番号オプションを付けても付けなくてもかまいません。シグナル番号がない場合、killコマンドは終了シグナル(15)を発行します。これは、プロセスが終了する前にプロセスがリソースをクリーンアップして解放できるように、プロセスによってキャプチャされます。 killを使って特定のシグナルをプロセスに送ることもできます。例:kill -2 123この効果は、PID 123でフォアグラウンドでプロセスを実行しているときにCtrl + Cを押すのと同じです。ただし、通常のユーザーは、signalパラメーターを指定せずにkillコマンドを使用するか、最大で-9シグナルしか使用できません。 2、killはパラメータとしてプロセスID番号を持つことができます。これらのプロセスにシグナルを送るのにkillを使うとき、それらはこれらのプロセスのマスターでなければなりません。取り消す権限を持たないプロセスや、存在しないプロセスを取り消そうとすると、エラーメッセージが表示されます。 3.複数のプロセスを通知または終了することができます。 4. killが正常にシグナルを送信すると、シェルはプロセスの終了情報を画面に表示します。この情報はすぐには表示されないことがあります。シェルのコマンドプロンプトを再度表示するためにEnterキーを押すと表示されるだけです。 5は、プロセスを強制的に終了させるための信号に注意を払う必要があります。データ損失や端末を通常の状態に復元できないなど、いくつかの副作用が発生することがよくあります。シグナルを送信するときは注意が必要です。kill signal(9)は、絶対に必要な場合にのみ使用されます。プロセスが最初にそれを捉えることができないためです。すべてのバックグラウンドジョブを元に戻すには、kill 0を入力します。バックグラウンドで実行されているコマンドの中には複数のプロセスを起動するものがあるため、強制終了するすべてのプロセスのPIDを追跡して見つけるのは面倒です。現時点では、kill 0を使用して現在のシェルによって開始されたすべてのプロセスを終了させるのが効果的な方法です。シグナルの説明:プロセスを無条件に終了できるのは9番目のシグナル(SIGKILL)だけで、他のシグナルプロセスは無視することができます。一般的に使用される信号は次のとおりです。HUP 1端子切断INT 2割り込み(Ctrl + Cと同じ)QUIT 3終了(Ctrl + \\と同じ)TERM 15終了KILL 9強制終了CONT 18は続行します(STOP、fg /bgコマンドとは対照的) 19一時停止(Ctrl + Zと同じ)親プロセスと子プロセス各Linuxプロセスには、現在のプロセスID(pid)と親プロセスID(ppid)の2つのプロセスIDがあります。一時的にすべてのプロセスに親プロセスがあると考えることができます。ユーザーが実行するほとんどのコマンドは、シェルを親プロセスとして使用し、ps -fコマンドを使用して現在のプロセスIDと親プロセスIDを表示します。ゾンビプロセスと孤立プロセス通常、子プロセスが終了すると、親プロセスはSIGCHLDによって通知され、SIGCHLDはクリーンアップを実行したり、新しいプロセスを再起動したりできます。しかし、場合によっては、親プロセスは子プロセスの前に終了され、その後、これらの子プロセスには孤児プロセスと呼ばれる「父親」がいません。 initプロセスは、すべての孤立プロセスの親になります。 inpid pidは1で、これはLinuxシステムの最初のプロセスであり、すべてのプロセスの親です。プロセスが終了してもpsコマンドを使用してプロセスを表示でき、ステータスがZの場合、これはゾンビプロセスです。ゾンビプロセスは終了しますが、それでもプロセスリストに存在します。通常、ゾンビプロセスは強制終了するのが難しく、最初にそれらの親プロセスを強制終了し、孤立プロセスにすることができます。そしてinitプロセスが自動的にゾンビプロセスをクリーンアップします。常駐プロセス常駐プロセスは通常、root権限でバックグラウンドで実行され、他のプロセスからの要求を処理できるシステムレベルのプロセスです。常駐プロセスには端末がなく、/dev /ttyファイルにアクセスできないps -efを使用してプロセスを表示すると、tty列に疑問符(?)が表示されます。具体的には、常駐プロセスは通常、バックグラウンドで実行され、指定されたイベントが発生するのを待ちます(たとえば、印刷プロセスは、ユーザーが印刷関連のコマンドを入力して処理するのを待つ常駐プロセスです)。 topコマンドtopコマンドは、Windowsタスクマネージャと同様に、実行中のプロセスを動的に表示し、指定された基準に従ってプロセスをソートするのに便利なツールです。 topコマンドは、物理メモリ、仮想メモリ、CPU使用率、平均負荷、ビジープロセスなど、プロセスに関する多くの情報を表示できます。例:$ topタスクとプロセスタスクは最も抽象的で、ソフトウェアによって行われるアクティビティを指す一般的な用語です。タスクは、プロセスまたは複数のプロセスのいずれかです。つまり、特定の目的を達成するために連携して動作する一連の操作のことです。例えば、データを読み取り、それをメモリーに入れることです。このタスクは、1つのプロセスまたは複数のプロセスによって実装できます。各タスクには番号で表されたタスク番号があります。プロセスはしばしばプログラムの実行として定義されます。プロセスを、メモリ内に完全なデータスペースとコードスペースを持つスタンドアロンプ​​ログラムと考えてください。プロセスが所有するデータと変数はそれ自身に属します。 jobsコマンドを使用すると、バックグラウンドで実行されているタスクなど、システムで実行されているタスクを表示できます。このコマンドは、タスク番号とそれに対応するプロセスIDを表示します。タスクは1つ以上のプロセス番号に対応します。 jobsコマンドの-lオプションを使用すると、現在のタスクに含まれているプロセスIDを表示できます。$ jobs -l [1] + 1903 running ls ch * .doc& $ここで、最初の列はタスク番号、2番目の列はタスクに対応ID、3列目はタスクの実行状況を示し、4列目はタスクを開始するコマンドを示します。フォアグラウンドタスクとバックグラウンドタスクの切り替えfgコマンドを使用すると、バックグラウンドタスクをフォアグラウンドに移動できます構文は次のとおりです。$ fg%jobnumber jobnumberは、jobsコマンドで取得したバックグラウンドタスクのシリアル番号です。バックグラウンドにタスクが1つしかない場合は、jobnumberを指定できません。 bgコマンドは、実行を継続するために、バックグラウンドで中断されているタスクをフォアグラウンドに転送することができます。
Copyright © Windowsの知識 All Rights Reserved