Linuxコマンドラインを初めて調べたり、Linux管理に入ったりしたとします。その場合、ターミナルを回避して基本的なタスクを完了する方法についての低レベルの理解が不可欠です。これらの概念を理解するのに役立つように、以前の2つの記事を確認してください。
- ターミナルで開始するための10個のコマンド
-
ファイルを操作するためのさらに10個のコマンド
ただし、これらの概念に慣れている場合は、この記事でLinuxの知識をもう少し進めます。プロセスとその管理方法について見ていきます。
つまり、プロセスとは正確には何ですか ?
Linuxでは、プロセスはプログラムのアクティブな(実行中の)インスタンスです。しかし、プログラムとは何ですか ?技術的には、プログラムとは、マシンのストレージに保持されている実行可能ファイルのことです。プログラムを実行するときはいつでも、プロセスを作成しました。基本的なレベルでは、これは非常に簡単に管理できます。これを今日見ていきます。
始めるために必要なもの
お気に入りの仮想マシンをフォローすることをお勧めします。そうすれば、結果を出さずに試して失敗することができます(これは、ターミナルで快適に過ごすための最良の方法です)。
このデモでは、500秒間スリーププロセスを開始します。このアプローチにより、システムに意味のある変更を加えることなく、プロセスを確認できます。
[tcarrigan@client ~]$ sleep 500
^Z
[1]+ Stopped sleep 500
次に、 Ctrl + Zでプロセスを停止しました ターミナルを使用できるようにします。
1。プロセスの一覧表示
現在アクティブなプロセスを表示するには、ps
を使用します コマンド:
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
3300 pts/0 00:00:00 ps
ここでは、システムでアクティブなプロセスに関する情報を少し取得します。 PIDに注意を払う必要があります (一意のプロセスID)、時間 (プロセスが実行されている時間)、および CMD (プロセスを起動するために実行されるコマンド)。
2。詳細リスト(プロセス)
プロセスの非常に詳細なリストを表示するには、ps aux
を使用できます。 コマンド。
- a-すべてのユーザー
- u-ユーザー/所有者を表示します
- x-ターミナルで実行されていないプロセスを表示します(出力がかなり長くなります)
ここでコマンドを見ることができます(出力は長さのために編集されています):
[tcarrigan@client ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tcarrig+ 3293 0.0 0.0 215292 520 pts/0 T 13:41 0:00 sleep 500
root 3380 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:1-mm_percpu_wq]
root 3381 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:3]
root 3398 0.0 0.0 0 0 ? I 13:46 0:00 [kworker/3:2-ata_sff]
root 3481 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/u8:2-flush-253:0]
root 3482 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:1-events]
root 3483 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:2]
root 3508 0.0 0.0 0 0 ? I 13:51 0:00 [kworker/3:0-ata_sff]
root 3511 0.0 0.0 18892 7732 ? S 13:52 0:00 systemd-userwork
root 3512 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3513 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3566 0.4 0.0 432792 8024 ? Ssl 13:54 0:00 /usr/libexec/fprintd
tcarrig+ 3598 0.0 0.0 228208 3948 pts/0 R+ 13:54 0:00 ps aux
3。 PIDで殺す
必然的に、プロセスがハングし、kill
する必要があります それ。 CLIで過ごす時間が長いほど、kill
が必要になる可能性が高くなります。 指図。プロセスを識別する最も正確な方法は、プロセスID(PID)によるものです。
次の構文を使用します:
[tcarrigan@client ~]$ kill PID
このコマンドは、 SIGTERMを送信します 信号。ただし、スタックしたプロセスを処理している場合は、-9
を追加します オプション。
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ sudo kill -9 3293
[sudo] password for tcarrigan:
[1] Killed sleep 500
4。名前/キーワードで殺す
killall
を使用する 名前でプロセスを強制終了するコマンド。このコマンドは、指定したキーワード/名前を持つすべてのプロセスを強制終了します。
構文は次のとおりです。
[tcarrigan@client ~]$ killall sleep
これはすべてのsleep
を殺します システムでアクティブなプロセス(-9
オプションはここでも機能します)。次に例を示します:
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ killall -9 sleep
[2]- Killed sleep 500
[3]+ Killed sleep 500
これらの次の2つのコマンドは密接に関連しています。バックグラウンドコマンドを移動/管理できます。以下の構文の基本を見ていきます。ただし、これらのコマンドの詳細については、このテーマに関する以前の記事を参照してください。
5。バックグラウンドジョブを一覧表示し、バックグラウンドジョブを再開します
バックグラウンドジョブを一覧表示して管理するには、bg
を使用します 指図。新しいsleep 500
を開始しました 処理してから停止し、バックグラウンドに送信します。したがって、bg
を実行するとリストに表示されます。 以下:
[tcarrigan@client ~]$ bg
[1]+ sleep 500 &
6。最新の仕事を前面に出す
これを行うには、fg
を使用します 指図。これにより、最後に実行されたジョブ/プロセスが前面に表示されます。次の例は、上記のコマンドの続きです。 sleep 500
バックグラウンドにあるプロセスがバックグラウンドでアクティブになります。それを明るみに出しましょう...
[tcarrigan@client ~]$ fg
sleep 500
このコマンドにより、このリストの最後のコマンドに移動します。
7。特定の仕事を前面に出す
fg
を使用する もう一度コマンドを実行しますが、特定のジョブを選択して(最新ではなく)フォアグラウンドに移動します。これを行うには、コマンドにジョブ/プロセス名を追加するだけです。
[tcarrigan@client ~]$ fg XXXample
これは仕事をもたらしますXXXample フォアグラウンドに。
[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]
まとめ
今日のLinuxCommandBasicsでは、プロセスとその管理方法について説明しました。これで、リストやキルからバックグラウンドとフォアグラウンドの間の移動まで、一般的なプロセス管理タスクを完了することができます。コマンドの専用リストを表示したい他の一般的なLinux管理領域がある場合は、[email protected]でチームに電子メールを送信してください。それを具体化するために最善を尽くします。