utte

systemctl systemd のサービスや起動の設定を管理する

systemctl コマンド [ユニット名]

試してみる

主なオプション

start / stop / restart ユニットサービスを起動 / 停止 / 再起動する
reload ユニット停止せずに設定を再読み込みする
status ユニット状態と、最近のログを表示する
enable / disable ユニット起動時の自動起動を有効 / 無効にする
is-active / is-enabled動作中か / 自動起動が有効かを調べる
get-default / set-default起動時のターゲットを表示 / 設定する
isolate ターゲット指定したターゲットに切り替える

解説

systemd とユニット

systemd は、多くの Linux ディストリビューションで、最初に起動して、他のサービスを管理するしくみです。管理の対象を「ユニット」と呼びます。ユニットには、サービス(ssh.service など)、ターゲット(graphical.target など)、マウント(.mount)などの種類があり、定義は /lib/systemd/system/(管理者が書くものは /etc/systemd/system/)にあるファイルです。systemctl は、そのユニットを操作するコマンドです。

このページのターミナルでは systemd が起動していないため、一部の操作は試せません。start、stop、status などは、実機でのみ動きます。ここでは、設定ファイルだけを扱う get-default と set-default などを試せます。

サービスの操作(実機)

sudo systemctl start ssh        # 起動する
sudo systemctl stop ssh         # 停止する
sudo systemctl restart ssh      # 再起動する
systemctl status ssh            # 状態を見る
sudo systemctl enable ssh       # 起動時の自動起動を有効にする

start は今すぐ起動するだけで、次の起動時には影響しません。起動時の設定は enable / disable で行い、enable --now を付けると、両方を一度にできます。

ターゲット

ターゲットは、昔の「ランレベル」にあたる、動作モードです。

ターゲット 意味 昔のランレベル
poweroff.target 停止 0
rescue.target レスキューモード 1
multi-user.target CUI で複数ユーザー 3
graphical.target GUI 5
reboot.target 再起動 6

set-default は、起動時のターゲットを /etc/systemd/system/default.target のシンボリックリンクとして保存します。今すぐ切り替えるときは、systemctl isolate multi-user.target を使います。

このコマンドを使う問題

  1. systemdのデフォルトターゲットをテキストモードにする

関連するコマンド

LinuC 101の出題範囲