はじめる人のびぎねっと。

プライバシーポリシー

読み物

Linux基礎

プロセスとは?

プロセスは,Linux上で動作中のプログラムのことを指します。タスクとも呼ばれます。プロセスはさまざまな方法で生成されますが,最も簡単な方法はシェルからコマンドを実行することです。実行されたコマンドプログラムは,コマンドファイルの内容がメモリーにロードされ,先頭から実行されていきます。プログラムの実行が終わるとプロセスも消失します。

プロセスには親子関係があり,親プロセスが子プロセスを生成します。Linuxカーネルの起動後,一番最初にinitという名称のプロセスが起動します。このinitプロセスがすべてのプロセスの親であり,その他のプロセスを生成することでLiunxはシステムを構成しています。ユーザーがLinuxにログインすると,ログインシェルプロセスが生成されます。ユーザーがコマンド実行すると,ログインシェルプロセスを親にしてコマンドの子プロセスが生成される仕組みになっています。

プロセスの確認

LinuxはマルチタスクOSなので,システム上で同時に複数のプロセスが動作しています。また,ユーザーも同時にいくつものプログラムを実行することが可能です。

Linux上で動作しているプロセスを確認するには,psコマンドを使用します。psコマンドをオプションを指定せずに実行すると,そのユーザー自身が実行しているプロセスが表示されます。aやxオプションを指定して実行すると,その他のユーザーやシステムが実行しているプロセスを確認することができます。

●psコマンドをオプションなしで実行した場合

$ ps
PID TTY TIME CMD
16552 pts/0 00:00:00 bash
16588 pts/0 00:00:00 ps

●psコマンドをaxオプションで実行した場合

$ ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:04 init [3]
2 ? SW 0:00 [keventd]
3 ? SW 0:00 [kapmd]

16551 ? S 0:00 /usr/sbin/sshd
16552 pts/0 S 0:00 -bash
16591 pts/0 R 0:00 ps ax

※aオプションは,他のすべてのユーザーがコマンドラインから実行したプロセスを表示します。xオプションは,端末から起動されていないプロセスを表示します。

表示の意味

PID プロセスごとに割り振られる番号
TTY プロセスを実行している制御端末
STAT 状態
TIME CPU消費時間
CMD(COMMAND) 実行コマンド

その他のオプション

a すべてのプロセスを表示
u ユーザー名を含めてプロセスを表示
x シェルから実行されていないプロセスを表示
l プロセスの状態を詳細に表示
プロセスの終了

それぞれのプロセスは処理が終了すると,プロセスもメモリーから消失するはずです。しかし,何らかの理由でプロセスが終了しない場合があります。このようなプロセスはユーザーが直接終了させる必要があります。

最も簡単な方法として,コマンドライン上から[Ctrl]+[C]で終了させることができます。それでも終了しない場合には,killコマンドを使用します。killコマンドに終了させたいプロセスのプロセスIDを引数に付けて実行します。管理者はすべてのプロセスを終了させることができますが,一般ユーザーは自分の実行したプロセスしか終了させることができません。

Killコマンドは,プロセスを終了する以外にもプロセスの実行を中断させたり,プロセスの実行を再開させたりすることができます。それらの動作を指示するには,「シグナル」というオプションを使います。

●1298番のプロセスを強制終了する

$ kill ?KILL 1298

よく使われているシグナル

TERM 安全に終了させる
KILL 強制終了させる
STOP 中断させる
CONT 再開させる
HUP プロセスを終了後再起動
QUIT coreファイルを残しながら終了する

このページのTOPへ