目標
「ps -lコマンド」と「topコマンド」(CPU利用状況)について理解する。
「freeコマンド」(メモリ利用状況)について理解する。
「プロセス管理のコマンド(プロセスの監視と終了)」について理解する。
「プロセス管理のコマンド(ジョブの管理)」について理解する。
「プロセスの優先度」について理解する。
プロセス管理のコマンド
プロセス管理のコマンド
プロセス管理のコマンド
psコマンド
システムで実行されているプロセスの情報を確認するコマンドです。
文法:
ps [省略できるOP]
※OP:オプションのことです。
コマンドの参考資料はこちら
コマンド「ps -elf」の実行結果です。
[rocky001@rockylinux001 ~]$ ps -elf
表示の詳細は次のようになっています。
ヘッダーの名前 | 情報の内容 |
S | D(もしくはS):スリーブ中(割り込み不可) R:実行状態もしくは実行可能状態 T:ジョブ制御によって一時的に停止 Z:親プロセスにステータスの報告が済んでいない終了プロセス |
UID | プロセスを起動しているユーザー |
PID/PPID | プロセスID / 親のプロセスID |
C | プロセスを実行中のプロセッサID |
PRI | プロセスの優先度 |
NI | nice値 |
SZ | プロセスが利用中のメモリ容量 |
WCHAN | プロセスが完了を待つシステムコール |
STIME (START) | プロセスの開始日時 |
TTY | プロセスが結びついている端末 |
TIME | CPUの利用合計時間 |
CMD (COMMAND) | 実行中のコマンド |
psコマンドに「f」オプションを利用するとプロセスの親子関係をツリー状で表示できます。
[rocky001@rockylinux001 ~]$ ps axf
実行結果
今度は「pstreeコマンド」を利用してプロセスをツリー状で表示してみます。オプションに「p」を利用するとPIDも追記してくれます。
[rocky001@rockylinux001 ~]$ pstree -p
デーモンについてはTTYが「?」となっているものを確認します。
[rocky001@rockylinux001 ~]$ ps ajx
topコマンド
プロセスの状態を定期的に取得して表示するコマンドです。
文法:
top [省略できるOP]
※OP:オプションのことです。
コマンドの参考資料はこちら
[rocky001@rockylinux001 ~]$ top
実行結果は次のようになります。この画面を終了する時は「q」を押下します。
「q」を押下するとプロンプトが表示されます。
freeコマンド
メモリの利用状況を表示するコマンドです。
文法:
free [省略できるOP]
※OP:オプションのことです。
コマンドの参考資料はこちら
[rocky001@rockylinux001 ~]$ free -h
実行結果
- shared:複数のプロセスが共有するメモリ(/tmpなど)
- buff/chche:直近のアクセス内容を保管している領域
- available:現段階でCPUが利用可能なメモリの容量
killコマンド
現在実行しているプロセスを終了するコマンドです。
文法:
kill [省略できるOP(シグナル名 or シグナルID)] プロセスID
※OP:オプションのことです。
コマンドの参考資料はこちら
jobsコマンド
実行中のジョブを確認するコマンドです。
文法:
jobs [省略できるOP]
※OP:オプションのことです。
ここではまずviエディタを立ち上げて「jobsコマンド」を利用してみます。(viのプロセスを起動)
[rocky001@rockylinux001 ~]$ ls
archiverocky dir1 hlrocky2.txt nusortrocky1.txt rocky1.txt rocky5.txt splitfileaa
cpslrocky2.txt dir2 linux3.txt nusortrocky2.txt rocky1.txt.gz rocky6.txt splitfileab
cpslrocky_optiond2.txt dir3 mergesplitfile.txt rocky.cpio rocky1copy.txt slrocky2.txt
[rocky001@rockylinux001 ~]$ vi rocky1.txt
viエディタが起動します。
この状態で「Ctrl+Z」を利用してジョブをサスペンドジョブ(一時停止のジョブ)にします。「Ctrl+Z」を押下します。
画面が次のように変わります。プロンプトが表示され「vi rocky1.txt」が「Stopped」となりました。この時の一番左の [ 1 ] となっている番号が「ジョブ番号」です。
ここで「jobsコマンド」を入力します。ジョブの内容が表示されます。
この状態から通常のviの処理に戻す場合は「fg 1」とコマンドを入力します。もし、バックグラウンドジョブを終了させたい場合はkillコマンドを利用できます。(killコマンドを利用しなければいけない場合があればこれを行いますが、別の手がないか本来は考えます。)ここでは例として開いているviエディタを強制終了させてみたいと思います。
ジョブを確認します。
[rocky001@rockylinux001 ~]$ jobs
[ 1 ] + Stopped vi rocky1.txt
killコマンドでジョブ [ 1 ] を強制終了します。
[rocky001@rockylinux001 ~]$ kill -9 %1
[ 1 ] + Stopped vi rocky1.txt
ジョブの状態を確認します。強制終了直後は「+Killed」となっています。
[rocky001@rockylinux001 ~]$ jobs
[ 1 ] + Killed vi rocky1.txt
フォアグラウンドジョブに移そうとしてもジョブがないと返されます。
[rocky001@rockylinux001 ~]$ fg 1
bash: fg: 1: no such job
再度ジョブを確認すると先ほどのジョブが消えています。
[rocky001@rockylinux001 ~]$ jobs
[rocky001@rockylinux001 ~]$
「フォアグラウンドジョブ」と「バックグラウンドジョブ」の切り替え
bgコマンド
フォアグラウンドジョブをバックグラウンドジョブに変更するコマンドです。
文法:
bg ジョブ番号
先ほどのviエディタのプロセスをバックグラウンドジョブへ移行させる場合は「Ctrl+Z」を押して「bg 1」とするだけです。(意味のある操作ではありません。操作の例として捉えて頂ければと思います。)もしバックグラウンドジョブをkillコマンドで終了したい場合は「kill %1」と入力します。
fgコマンド
バックグラウンドジョブをフォアグラウンドジョブ変更するコマンドです。
文法:
fg ジョブ番号
プロセスには優先度があります。優先度の高いプロセス程、先に資源が割り当てられて処理が進みます。ここでは、この優先度を変更するコマンドを確認してみます。
niceコマンド
実行時にプロセスの優先度を変更するコマンドです。
文法:
nice [-n ナイス値(優先度)] コマンド
コマンドの参考資料はこちら
reniceコマンド
実行中のプロセスの優先度を変更するコマンドです。
文法:
renice ナイス値 [-p PID] [-u ユーザー名]
コマンドの参考資料はこちら
今回は以上になります。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。