" />
本ページはプロモーションが含まれています。

スポンサーリンク

Linux

Linuxのコマンド実行の仕組み-カーネル/プロセス

Linuxカーネルがコマンドを実行する

次のように入力したとします。

$ echo hello linux!
hello linux!

この時、Linux内部では次のような処理が行われています。

  1. echoという文字列を受け取る
  2. echoという名前のコマンドを探す
  3. 見つかったコマンドを実行する
  4. 実行結果を画面に表示する

3がコマンドの実行になりますが、Linuxの中核であるLinuxカーネルという部分が実行します。

シェルがLinuxカーネルを操作する

$ echo hello linux!
hello linux!

上記のコマンドはシェルという形式です。

echoコマンドを実際に処理するのはカーネルですが、ユーザはカーネルを直接操作するのではありません。

シェルを通して、カーネルに命令を送っているということになります。
つまりシェルは、カーネルのインターフェースとなっているソフトウェアです。

コマンドが実行される仕組み

実行中のコマンドの実体をプロセスと呼びます。

  • コマンドはディスク上に保存されたプログラムである。
  • コマンドが実行されると、該当コマンドがHDDやSSDからメモリ上に展開されて、実行される。
  • コマンド実行の実体をプロセスと呼ぶ。

1つ1つの実体=プロセスにはPIDというIDが割り当てられる。

psコマンドで実行中のプロセスを一覧表示する。

構文

ps

$ ps
  PID TTY          TIME CMD
  170 pts/4    00:00:00 bash
  186 pts/4    00:00:00 ps

PID...プロセスに割り当てられたID。
TTY...どのターミナルから実行されたかを表す。
CMD...実行されているコマンド。

psコマンドにオプションを指定しない場合、psコマンドの実行ユーザーのプロセスのみが表示されます。

オプション

オプション説明
axpsを実行したユーザー以外のユーザーのプロセスも表示する。
psコマンドのオプション

killコマンドでプロセスを終了させる

特定のプロセスを終了させるには、killコマンドを使用します。

構文

kill [PID]

$ ps
  PID TTY          TIME CMD
  170 pts/4    00:00:00 bash
  189 pts/4    00:00:00 ps

$ ps 189
  PID TTY      STAT   TIME COMMAND

$ ps
  PID TTY          TIME CMD
  170 pts/4    00:00:00 bash
  191 pts/4    00:00:00 ps

上記はほとんど意味のないkillの例ですが、1行目のpsの結果の2つ目のプロセスを、6行目のkillコマンドで終了させています。

 

AWSでの環境構築で手間取ることはありませんか?環境構築にはLinuxの基礎知識が不可欠だと悟り、私はこの本でLinuxを勉強し直しました。

スポンサーリンク

-Linux