processes unix process control
Unixでのプロセス管理:
Unixでは、カーネル外のすべての命令はプロセスのコンテキストで実行されます。
プロセスは一連の命令であり、各プロセスには制御されたデータのブロックが関連付けられています。プロセスは、ファイルの操作方法と同様の方法で操作できます。
例えば、 「ls」を使用してファイルのリストを表示できるように、「ps」を使用してプロセスのリストを表示できます。
Unixビデオ#23:
このチュートリアルでは、どのプロセス関連情報が保存されているかを説明し、プロセスの管理に使用されるいくつかのコマンドについても説明します。また、コマンドスクリプトをデバッグする方法についても簡単に説明します。
学習内容:
Unixプロセス情報
プロセステーブルには、現在実行されているすべてのプロセスの情報が含まれています。このテーブルの主な目的は、実行中のすべてのプロセスを効果的に管理することです。
注意: マルチタスクおよびマルチユーザーOSとして、Unixでは多くのプロセスが同時に実行されます。
このテーブルには、次のような情報が含まれています。
C ++で未定義の参照を修正する方法
- プロセスID
- 親プロセスID
- プロセスの状態
- CPU使用率
Unixのプロセスは、さまざまな状況に応じてさまざまな状態を経ます。状態変化は、プロセスが読み取りまたは書き込み操作の完了を待つ必要があるかどうか、または別のより緊急のプロセスに実行の機会を与える必要がある場合にトリガーされる可能性があります。
プロセス制御コマンド
プロセスを確認および操作するために使用できるコマンドは多数あります。 「ps」コマンドを使用して、プロセスステータス情報を表示できます。
コマンド | ps-現在実行中のすべてのプロセスの情報を提供します。 |
---|---|
一般的な構文 | $ ps (オプション) |
例1 | $ ps PID、端末名、作成時刻、プロセス名など、プロセスに関する情報を提供します。 |
前のチュートリアルで説明したように、プロセスはフォアグラウンド、バックグラウンド、またはデーモンとして分類できます。コマンドが端末から実行されると、フォアグラウンドで通常どおり実行されます。バックグラウンドでプロセスを実行するために、コマンドの最後にある「&」ボタンを使用できます。
例:
$ grep “how” file1 > file2 &
このコマンドは、パターン「how」を含む行を検索し、出力をfile2に格納します。 file1が適度に大きい場合は、他のアクションを続行し、このコマンドをバックグラウンドで実行することをお勧めします。最後に「&」を付けると、このコマンドはバックグラウンドでプロセスとして実行されます。
「^ Z」コマンドを使用して、フォアグラウンドプロセスを一時停止することができます。このコマンドは、現在のフォアグラウンドプロセスをバックグラウンドで一時停止状態に移動します。そこから、「bg」コマンドを使用してプロセスをプッシュしてバックグラウンドで再開するか、「fg」コマンドを使用してプロセスをフォアグラウンドに戻すことができます。
各プロセスは、優先度にも関連付けられています。これは、OSがさまざまな処理タスクに時間を公平に割り当てることができるようにするために使用されます。 「nice」コマンドを使用すると、プロセスの優先度を下げて、他のプロセスに対して「nice」にすることができます。
$素敵
この行は、指定されたコマンドを低い優先度で実行します。デフォルトでは、優先度は10減少します。このコマンドは、異なるレベルの「niceness」を使用するために使用できるパラメーターも取ります。
例:
$ nice -20 ls
このコマンドは、優先度を20下げて「ls」を実行します。
負の「良さ」で優先度を上げることも可能です。ただし、これにはスーパーユーザーの許可が必要です。
ターミナルまたはログインセッションが閉じられると、SIGHUPシグナルが子プロセスに送信されます。デフォルトでは、このシグナルにより子プロセスが終了します。 「nohup」コマンドを使用すると、ログインセッションが終了した場合でもコマンドを実行し続けることができます。
例:
$ nohup soft file1 > file2
このコマンドを使用すると、システムからログアウトした場合でも、file1のソートとfile2プロセスへの保存が続行されます。
「kill」コマンドを使用して、権限に応じて任意のプロセスを終了できます。
例:
$ kill (options)
このコマンドは、プロセスIDでプロセスを終了します。プロセスのPIDは、「ps」コマンドを使用して取得できます。
この「at」コマンドは、将来の特定の日時にコマンドを実行するために使用されます。
例:
$ at 8pm sort file1>file2
Unixデバッグ
Unixには、コマンドスクリプトのバグを見つけるのに役立つ多くのメカニズムが用意されています。これらのメカニズムを使用して、実行されているもののトレース、つまりコマンドが実行されるシーケンスを表示できます。トレースを使用して、スクリプトのロジックと制御フローを理解および検証できます。
=> set -v
詳細モード: コマンドを実行する前にこのオプションを設定すると、実行されるコマンドが実際に実行される前にstdoutに出力されます。
=> set -x
実行トレースモード: このオプションを設定すると、実行時に各コマンドが引数とともに表示されます。
=> set -n
no-execモード: このオプションを設定すると、実際にコマンドを実行せずにエラーが表示されます。
詳細については、今後のチュートリアルをご覧ください 高度なシェルスクリプト。