【システムコントロール】

systemctl とは?

💡 Linuxサービスの総合リモコン
📌 このページのポイント
systemctl によるサービス管理 systemctl start(起動) stop(停止) restart(再起動) enable(自動起動) status(状態確認) systemd が管理するサービス nginx.service active (running) postgresql.service active (running) redis.service failed docker.service inactive (dead) sshd.service active (running)
systemctl でサービスの状態を管理するイメージ
ひよこ ひよこ

Linuxでサービスを起動したいんだけど、どうすればいいの?

ペンギン先生 ペンギン先生

systemctl start nginx のように書けばOKだよ。stopで停止、restartで再起動。サービス名を指定するだけでいいから簡単だね。

ひよこ ひよこ

サーバー再起動したら、またサービスを手動で起動しないといけないの?

ペンギン先生 ペンギン先生

systemctl enable nginx としておけば、サーバー起動時に自動的にサービスも立ち上がるよ。逆にdisableで自動起動を解除できる。本番サーバーでは必要なサービスをenableにしておくのが基本だね。

ひよこ ひよこ

サービスが動いてるかどうか確認するには?

ペンギン先生 ペンギン先生

systemctl status nginx で詳しい状態が見られるよ。active(running)なら正常稼働中、failed なら何か問題が起きている。最近のログも一緒に表示されるから、トラブル時の初動調査にとても便利なんだ。

ひよこ ひよこ

昔はsystemctlじゃなかったの?

ペンギン先生 ペンギン先生

以前はservice nginx startやchkconfig nginx onのように別々のコマンドを使っていたんだ。systemdとsystemctlが登場してからは、サービス管理が一つのコマンドに統一されて格段に使いやすくなったよ。ただしsystemdは設計思想を巡って賛否両論あって、Linux界隈で最も議論が白熱したトピックの一つだったりするんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「systemctl」って出てきたら「Linuxのサービスを管理するコマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「system control」 = システム制御
💬 systemd(システムデーモン)を操作する「コントロール」コマンドだよ
← 用語集にもどる