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 nginx | OS起動時に自動で起動するよう設定 |
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