systemctlコマンドの使い方:systemdサービスを制御する

systemctlは、systemdが管理するサービス(Webサーバー、データベースなど)の起動・停止・状態確認・自動起動の設定を行うコマンドです。現在の主要なLinuxディストリビューションで、サービス管理の標準になっています。

systemctlのよく使う形

実務や学習で登場しやすい使い方を、そのまま入力できる形でまとめました。

コマンド例内容
systemctl status nginxサービスの状態と直近のログを確認
sudo systemctl start nginxサービスを起動
sudo systemctl stop nginxサービスを停止
sudo systemctl restart nginxサービスを再起動
sudo systemctl reload nginx設定だけ再読み込み(対応しているサービスのみ)
sudo systemctl enable nginxOS起動時に自動で起動するよう設定
systemctl list-units --type=serviceサービスの一覧を表示
systemctl --failed起動に失敗しているユニットを表示

systemctlの主なオプション

オプション意味
start
stop
restart
status
enable
disable
daemon-reload
list-units 一覧表示
is-active 起動状態を確認
mask /dev/nullへのリンクで起動を完全に禁止
unmask maskの解除

systemctlの実行例と結果の読み方

user@linux-study:~$ systemctl status nginx
● nginx.service - A high performance web server
   Active: active (running)

systemctl statusで、nginxというサービスが現在起動中かどうか(Active: active (running))と、サービスの概要を確認しています。

練習用ターミナルでは、systemctlをブラウザ上で安全に試せます。

systemctlを使うときの注意点

startは今すぐ起動するだけで、再起動後も自動で起動するかはenableで決まります。両方を同時に行うときはsystemctl enable --now サービス名が使えます。

サービスが起動しないときは、systemctl statusで概要を確認し、詳しい原因はjournalctl -u サービス名で見ます。ユニットファイルを編集したあとは、systemctl daemon-reloadが必要です。

systemctlに関するよくある質問

restartとreloadの違いは?

restartはいったん停止して起動し直すため、接続が切れます。reloadはプロセスを止めずに設定だけ読み直します。

古いserviceコマンドとの関係は?

service nginx restartは互換のために残っていることが多いですが、新しい環境ではsystemctlを使うのが基本です。

関連ページ

あわせて覚えたいコマンド:journalctl・ps・kill・ss

systemctlが登場する章:中級 第1章・上級 第3章

← Linuxコマンド一覧へ戻る