GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドの基本:プロセス管理用の7つのコマンド

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]でチームに電子メールを送信してください。それを具体化するために最善を尽くします。


Linux
  1. すべてのユーザーに必要な20のLinuxコマンド

  2. 効果的なプロセス管理のための8つのLinuxコマンド

  3. 3システム管理者に役立つLinuxコマンド

  1. システム管理者向けの30のLinuxプロセス演習

  2. AからZのLinuxコマンド

  3. 初心者向けの基本的な Linux コマンドのトップ

  1. 生産性を向上させるためのLinuxコマンドラインのヒント

  2. Linuxエコーコマンド

  3. Linux コマンド ラインの基本 – コマンド ラインからのコマンドの実行