クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

プロセスとサービスの扱い方

このレッスンのあとで: 動いているプロセスを探して止め、サービスの状態を確かめることができる。

45分のレッスンコマンド4件毎日使う Linux コマンドのラボ:エンジニアが暗記している30のコマンド

動かなくなったプログラムを止める

スマホのアプリが固まったとき、アプリを強制終了して直したことはありませんか。サーバーでも同じことが起きて、動いているプログラムを探して止める作業があります。

動いているプログラムをプロセスと言います。探し方と止め方を知っておくと、障害のときに落ち着いて動けます。

このレッスンのゴール

メモ

動いているプロセスを探して止め、サービスの状態を確かめることができる。

キーワード

ことばいみれい
プロセス今、動いているプログラム
PIDプロセスごとにつく番号
サービス裏で動き続けて、仕事を受け持つプログラムWeb サーバー
シグナルプロセスに送る、止まれなどの合図
systemctlサービスを調べて、動かしたり止めたりする命令

学生が入力するセルは、このプレビューでは空白です。

始める前に

メモ

上のバーの Start the lab を押し、マシンが動き出すまで待ってください。このラボでは、4つのプログラムが裏で動いています。

動いているプロセスの探し方

ps は、動いているプロセスの一覧を出します。pgrep は、名前でプロセスを探し、PID を表示します。

どのプロセスにも PID がつきます。1番のプロセスは、マシンが最初に動かすプログラムで、このラボでは systemd です。

1番のプロセスを見る

コマンド
ps -p 1 -o comm=

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

名前でプロセスを探す

コマンド
pgrep -l lab-worker

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

例: プロセス一覧の読み方

PIDユーザーCPU(%)名前
1root0.0systemd
812student0.1lab-worker
815student35.2lab-stubborn

学生が入力するセルは、このプレビューでは空白です。

プロセスを止めるには

kill は、PID を指定してプロセスに止まれという合図を送ります。ふつうの合図は、プロセスが片づけをして終わる、やさしい合図です。

これを無視するプロセスには、kill -9 を使います。強制的に止めるので、最後の手段にしてください。

例: 止める手順

コード: bash
# 1. 名前から PID を調べる
pgrep -l lab-stubborn
# 2. やさしい合図を送る
kill 815
# 3. まだ動いていたら、強制的に止める
kill -9 815

よくある間違い

注意

固まったら、いきなり kill -9 を使えばよいと考える人がよくいます。kill -9 は片づけをさせないので、書きかけのデータが壊れることがあります。まず kill を試し、効かないときだけ使ってください。

サービスの状態を調べるには

サービスは、裏で動き続けるプログラムです。systemctl status は状態を調べ、start と stop は動かして止めます。

enable は、マシンを起動したときに自動で動くようにします。is-active は、動いているかを、一言で答えます。

Web サーバーは動いているか

コマンド
systemctl is-active lab-web

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ログを書くサービスは動いているか

コマンド
systemctl is-active lab-logger

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

例: systemctl の使い方

命令すること
sudo systemctl start lab-webサービスを動かす
sudo systemctl stop lab-webサービスを止める
sudo systemctl restart lab-web止めて、もう一度動かす
sudo systemctl enable lab-web起動時に自動で動かす

学生が入力するセルは、このプレビューでは空白です。

さらに挑戦: 親と子

プロセスは、別のプロセスが起動します。起動した側を親、された側を子と言い、ps -ef の PPID の列が親の PID です。

親が止まると、子はどうなるでしょうか。調べて、自分の言葉で説明してみましょう。

このラボとソースについて: 毎日使う Linux コマンドのラボ:エンジニアが暗記している30のコマンド

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。