コマンドラインのマニュアル

Man » systemctl マニュアルオンライン - systemctl man ページの詳細なオンラインドキュメント

🌍
systemctl - systemd システムおよびサービスマネージャーを制御します

概要

systemctl [オプション...] コマンド [ユニット...]

説明

systemctl は、"systemd" システムおよびサービスマネージャーの状態を検査および制御するために使用できます。基本的な概念と、このツールが管理する機能については、[systemd]({filename}../../systemd)(1) を参照してください。

コマンド

次のコマンドがサポートされています。

ユニットコマンド(検査と変更)

list-units [パターン...]

systemd が現在メモリに保持しているユニットをリストします。これには、直接または依存関係を通じて参照されるユニット、アプリケーションによってプログラム的にピン留めされたユニット、または過去にアクティブで失敗したユニットが含まれます。デフォルトでは、アクティブ、保留中のジョブがある、または失敗したユニットのみが表示されます。これは、--all オプションで変更できます。1 つ以上のパターンが指定された場合、それらのいずれかに一致するユニットのみが表示されます。表示されるユニットは、--type= および --state= オプションが指定されている場合は、それらによってさらにフィルター処理されます。

このコマンドは、ユニットテンプレートではなく、ユニットテンプレートのインスタンスのみを表示することに注意してください。インスタンス化されていないユニットテンプレートは実行可能ではなく、したがってこのコマンドの出力には表示されません。たとえば、[email protected] は、インスタンス化されていない限り、このリストには表示されません(例:_.)。インストールされているユニットテンプレートファイルをリストするには、list-unit-files を使用します(下記を参照)。

次のような出力が生成されます。

ユニット                         ロード   アクティブ サブ     説明
sys-module-fuse.device       ロード済み アクティブ プラグイン済み /sys/module/fuse
-.mount                      ロード済み アクティブ マウント済み ルートマウント
boot-efi.mount               ロード済み アクティブ マウント済み /boot/efi
systemd-journald.service     ロード済み アクティブ 実行中 ジャーナルサービス
systemd-logind.service       ロード済み アクティブ 実行中 ログインサービス
● \_            ロード済み 失敗済み 失敗  UID 1000 のユーザーマネージャー
...
systemd-tmpfiles-clean.timer ロード済み アクティブ 待機中 テンポラリディレクトリの毎日のクリーンアップ

LOAD   = ユニット定義が正常にロードされたかどうかを示します。
ACTIVE = ユニットのアクティブ化のハイレベルな状態。SUB の一般化です。
SUB    = ユニットのアクティブ化のローレベルな状態。値はユニットのタイプによって異なります。

123 個のロードされたユニットがリストされました。--all を指定すると、ロードされたが非アクティブなユニットも表示されます。

インストールされているすべてのユニットファイルを一覧表示するには、'systemctl list-unit-files' を使用します。

ヘッダーと、指定されたタイプの最後のユニットは、ターミナルがサポートしている場合は下線が引かれます。マスクされた、見つからない、またはその他の理由で失敗したサービスには、色付きのドットが表示されます。


LOAD 列は、ロード状態を示し、loaded、not-found、bad-setting、error、masked のいずれかです。ACTIVE 列は、ユニットの一般的な状態を示し、次のいずれかです。

表 1. ユニットの ACTIVE 状態

┌──────────────┬─────────────────────────────────────┐
│ 状態        │ 説明                         │
├──────────────┼─────────────────────────────────────┤
│ active       │ 開始済み、バインド済み、プラグイン済み...、│
│              │ ユニットの種類によって異なります。         │
├──────────────┼─────────────────────────────────────┤
│ inactive     │ 停止済み、バインド解除済み、プラグアウト済み...、│
│              │ ユニットの種類によって異なります。         │
├──────────────┼─────────────────────────────────────┤
│ failed       │ inactive と似ていますが、ユニットが何らかの形で失敗しました(プロセスがエラーコードを返して終了、クラッシュ、操作がタイムアウト、または再起動が多すぎた)。│
├──────────────┼─────────────────────────────────────┤
│ activating   │ inactive から active に変更中です。   │
├──────────────┼─────────────────────────────────────┤
│ deactivating │ active から inactive に変更中です。   │
├──────────────┼─────────────────────────────────────┤
│ maintenance  │ ユニットは inactive で、メンテナンス操作が進行中です。│
├──────────────┼─────────────────────────────────────┤
│ reloading    │ ユニットは active で、構成を再読み込みしています。│
├──────────────┼─────────────────────────────────────┤
│ refreshing   │ ユニットは active で、新しいマウントがその名前空間でアクティブ化されています。│
└──────────────┴─────────────────────────────────────┘

「SUB」列は、ユニットタイプごとに異なる詳細なユニットの状態を示し、可能な値はユニットタイプによって異なります。可能な「LOAD」、「ACTIVE」、および「SUB」状態のリストは固定されておらず、新しい systemd リリースでは値が追加および削除される場合があります。

systemctl --state=help

コマンドを使用して、現在の可能な値のセットを表示できます。

これはデフォルトのコマンドです。

list-automounts [PATTERN...]

現在メモリに存在する自動マウントユニットをマウントパスの順にリスト表示します。1つ以上の「PATTERN」が指定された場合、指定された「PATTERN」に一致する自動マウントユニットのみが表示されます。出力は次のようになります。

WHAT        WHERE                    MOUNTED IDLE TIMEOUT UNIT
/dev/sdb1   /mnt/test                no      120s         mnt-test.automount
binfmt_misc /proc/sys/fs/binfmt_misc yes     0            proc-sys-fs-binfmt_misc.automount

2つの自動マウントユニットがリストされました。

--show-types、--all、および--state= も参照してください。

バージョン252で追加されました。

list-paths [PATTERN...]

現在メモリに存在するパスユニットをパスの順にリスト表示します。1つ以上の「PATTERN」が指定された場合、指定された「PATTERN」に一致するパスユニットのみが表示されます。出力は次のようになります。

PATH                           CONDITION         UNIT                               ACTIVATES
/run/systemd/ask-password      DirectoryNotEmpty systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service
/run/systemd/ask-password      DirectoryNotEmpty systemd-ask-password-wall.path     systemd-ask-password-wall.service
/var/cache/cups/org.cups.cupsd PathExists        cups.path                          cups.service

3つのパスユニットがリストされました。

--show-types、--all、および--state= も参照してください。

バージョン254で追加されました。

list-sockets [PATTERN...]

現在メモリに存在するソケットユニットをリッスンアドレスの順にリスト表示します。1つ以上の「PATTERN」が指定された場合、指定された「PATTERN」に一致するソケットユニットのみが表示されます。出力は次のようになります。

LISTEN           UNIT                        ACTIVATES
kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
/dev/rfkill      systemd-rfkill.socket       systemd-rfkill.service
...

5つのソケットユニットがリストされました。

注: アドレスに空白が含まれる可能性があるため、この出力はプログラムによる処理には適していません。

--show-types、--all、および--state= も参照してください。

バージョン202で追加されました。

list-timers [PATTERN...]

現在メモリに存在するタイマーユニットを、次に実行される時間の順にリスト表示します。1つ以上の「PATTERN」が指定された場合、指定された「PATTERN」に一致するユニットのみが表示されます。出力は次のようになります。

NEXT                         LEFT          LAST                         PASSED     UNIT                         ACTIVATES
-                            -             Thu 2017-02-23 13:40:29 EST  3 days ago ureadahead-stop.timer        ureadahead-stop.service

Sun 2017-02-26 18:55:42 EST 1min 14s left Thu 2017-02-23 13:54:44 EST 3 days ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service Sun 2017-02-26 20:37:16 EST 1h 42min left Sun 2017-02-26 11:56:36 EST 6h ago apt-daily.timer apt-daily.service Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago snapd.refresh.timer snapd.refresh.service


NEXT は、タイマーが次に実行される時刻を示します。

LEFT は、次のタイマーの実行までの残り時間を示します。

LAST は、タイマーが最後に実行された時刻を示します。

PASSED は、タイマーが最後に実行されてからの経過時間を示します。

UNIT は、タイマーの名前を示します。

ACTIVATES は、タイマーが実行時にアクティブにするサービスの名称を示します。

--all および --state= も参照してください。

バージョン 209 で追加されました。

is-active PATTERN...
指定されたユニットのいずれかがアクティブ(つまり実行中)であるかどうかを確認します。少なくとも 1 つがアクティブである場合、終了コード 0 を返します。そうでない場合は、0 以外の値を返します。--quiet が指定されていない場合、現在のユニットの状態が標準出力に出力されます。

is-failed [PATTERN...]
指定されたユニットのいずれかが「失敗」状態にあるかどうかを確認します。ユニットが指定されていない場合は、失敗したユニットまたは順序付けのサイクルがあるかどうかを確認します。これは、is-system-running によって返される「 degraded 」状態に対応します。少なくとも 1 つが失敗している場合、終了コード 0 を返します。そうでない場合は、0 以外の値を返します。--quiet が指定されていない場合、現在のユニットまたはシステムの状態が標準出力に出力されます。

バージョン 197 で追加されました。

status [PATTERN...|PID...]
システム全体の実行時ステータス情報、または 1 つ以上のユニットと、その後にジャーナルからの最新のログデータを示します。位置引数が指定されておらず、--type=、--state=、または --failed を使用してユニットフィルターが指定されていない場合、システム全体のステータスを表示します。--all と組み合わせた場合、すべてのユニットのステータスを表示します。位置引数が指定されている場合、各位置引数は、表示するユニット名、またはそのパターンに一致するユニット名を表示するグロブパターン、または PID を含むユニットを表示する PID として扱われます。--type=、--state=、または --failed が使用されている場合、ユニットは TYPE および ACTIVE 状態によって追加でフィルター処理されます。

この関数は、人間が読める出力を生成することを目的としています。コンピューターで解析可能な出力を取得したい場合は、代わりに show を使用してください。デフォルトでは、この関数は 10 行の出力のみを表示し、行を切り詰めて端末ウィンドウに収まるようにします。これは、--lines および --full を使用して変更できます。さらに、journalctl --unit=NAME または journalctl --user-unit=NAME は、メッセージに対して同様のフィルターを使用し、より便利になる場合があります。

systemd は必要に応じてユニットを暗黙的にロードするため、ステータスを実行するだけでは、ファイルがすでにロードされているかどうかを判断することはできません。ユニットは、その操作が完了した後、保持する必要がない場合は、すぐにアンロードされる可能性があります。

注意:この操作は、実行時ステータスのみを表示します。つまり、ユニットが実行されている場合は現在の呼び出しに関する情報、実行されていない場合は最新の呼び出しに関する情報が表示されます(メモリから解放されていない場合)。以前の呼び出し、以前のシステム起動からの呼び出し、またはすでにメモリから解放された以前の呼び出しに関する情報は、journalctl --unit= を使用して取得できます。

例 1. systemctl status の出力例

$ systemctl status bluetooth
● bluetooth.service - Bluetooth サービス
ロード済み: ロード済み (/usr/lib/systemd/system/bluetooth.service; 有効; プリセット: 有効)
アクティブ: アクティブ (実行中) Wed 2017-01-04 13:54:04 EST; 1 週間 0 日前
ドキュメント: man:bluetoothd(8)
メイン PID: 930 (bluetoothd)
ステータス: "実行中"
タスク: 1
メモリ: 648.0K
CPU: 435ms
CGroup: /system.slice/bluetooth.service
└─930 /usr/lib/bluetooth/bluetoothd

Jan 12 10:46:45 example.com bluetoothd[8900]: 利用可能なハンドルが不足し、サービスを登録できません Jan 12 10:46:45 example.com bluetoothd[8900]: 現在時刻サービスを登録できませんでした Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: 入出力エラー (5)

ドット ("●") は、対応するターミナルでユニットの状態を視覚的に要約するために色を使用します。 その色とともに、その形状は状態によって変化します。"非アクティブ" または "メンテナンス" は 白い円 ("○")、"アクティブ" は緑色のドット ("●")、"非アクティブ化中" は白いドット、"失敗" または "エラー" は赤い十字 ("×")、"再読み込み中" または "リフレッシュ中" は緑色の反時計回りの円 矢印 ("↻") です。

出力の "ロード済み:" 行は、ユニットがメモリにロードされている場合は "ロード済み" と表示されます。 "ロード済み:" の他の値には、"エラー" (ロード時に問題が発生した場合)、 "見つかりません" (このユニットのユニットファイルが見つからない場合)、"設定エラー" (必須のユニットファイル 設定を解析できない場合)、および "マスク" (ユニットファイルがマスクされている場合) があります。 この行では、ユニットファイルへのパスとともに、有効化状態も表示されます。 有効なユニットは、ユニット間の依存関係ネットワークに含まれ、したがって、起動時または他の形式の アクティブ化によって起動されます。 "マスク" の定義を含む、可能な有効化状態の完全な表については、 is-enabled コマンドのドキュメントを参照してください。

"アクティブ:" 行は、アクティブな状態を示します。値は通常 "アクティブ" または "非アクティブ" です。 アクティブとは、ユニットのタイプに応じて、開始済み、バインド済み、プラグイン済みなどです。 ユニットは、状態を変更している途中である可能性があり、"アクティブ化中" または "非アクティブ化中" の状態を報告します。 何らかの理由でサービスが失敗した場合 (クラッシュ、エラーコードで終了、またはタイムアウトなど) は、 特別な "失敗" 状態に入ります。 失敗状態になると、原因がログに記録され、後で参照できるようになります。

show [PATTERN...|JOB...]

1 つ以上のユニット、ジョブ、またはマネージャー自体のプロパティを表示します。引数が指定されていない場合、 マネージャーのプロパティが表示されます。ユニット名が指定されている場合、ユニットのプロパティが表示され、 ジョブ ID が指定されている場合、ジョブのプロパティが表示されます。デフォルトでは、空のプロパティは抑制されます。 それらも表示する場合は、--all を使用します。特定のプロパティを選択して表示するには、--property= を使用します。 このコマンドは、コンピューターで解析可能な出力が必要なときに使用することを目的としています。 書式設定された読みやすい出力が必要な場合は、status を使用してください。


systemctl に表示される多くのプロパティは、システムおよびサービスマネージャーの構成設定とユニットファイルに直接対応しています。ただし、コマンドで表示されるプロパティは、通常、元の構成設定のより低レベルで正規化されたバージョンであり、構成に加えて実行時の状態も公開します。たとえば、サービスユニットのプロパティには、サービスの現在のメインプロセス識別子である「MainPID」(実行時の状態)が含まれ、時間設定は常に「...USec」というサフィックスで終わるプロパティとして公開されます。これは、システムとサービスマネージャーによって内部的に使用される正規化された時間単位がマイクロ秒であるためです。

これらのプロパティの詳細については、これらのプロパティをサポートする D-Bus インターフェイスのドキュメント(org.freedesktop.systemd1(5))を参照してください。

cat PATTERN...

1 つ以上のユニットの関連ファイルを表示します。ユニットの「フラグメント」と「ドロップイン」(ソースファイル)を出力します。各ファイルは、ファイル名を含むコメントで始まることに注意してください。これは、ディスク上の関連ファイルのコンテンツを表示することに注意してください。ディスク上のユニットファイルが更新され、それ以降に daemon-reload コマンドが発行されていない場合、システムマネージャーがユニットを解釈する方法と一致しない可能性があります。

バージョン 209 で追加されました。

help PATTERN...|PID...

利用可能な 1 つ以上のユニットの man ページを表示します。PID が指定された場合、プロセスが属するユニットの man ページが表示されます。

バージョン 185 で追加されました。

list-dependencies [UNIT...]

指定されたユニットによって必要とされる、または要求されるユニットを表示します。これは、Requires=, Requisite=, Wants=, ConsistsOf=, BindsTo=, および Upholds= 依存関係を再帰的にリストします。ユニットが指定されていない場合、default.target が暗黙的に使用されます。

表示されるユニットは、--type= および --state= オプションが指定されている場合、それらによってさらにフィルタリングされます。この場合、ツリー構造を使用できないため、--plain が暗黙的に使用されます。

デフォルトでは、ターゲットユニットのみが再帰的に展開されます。--all が渡された場合、他のすべてのユニットも再帰的に展開されます。

^ -reverse, --after, --before オプションを使用して、表示する依存関係のタイプを変更できます。

このコマンドは、サービスマネージャーによってメモリにロードされているユニットのみをリストすることに注意してください。特に、特定のユニットに対するすべての逆依存関係の包括的なリストを取得するには、このコマンドは適切ではありません。これは、現在ロードされていないユニットによって宣言された依存関係はリストされないためです。

バージョン 198 で追加されました。

start PATTERN...

コマンドラインで指定された 1 つ以上のユニットを開始(アクティブ化)します。

ユニットのグロブパターンは、現在メモリにあるユニットの名前に展開されることに注意してください。アクティブではなく、失敗した状態ではないユニットは通常メモリにないため、パターンに一致しません。さらに、インスタンス化されたユニットの場合、インスタンスが開始されるまで、systemd はインスタンス名を認識していないことがよくあります。したがって、start コマンドでグロブパターンを使用することは、有用性が限られています。また、ユニットのセカンダリエイリアス名は考慮されません。


^ -all オプションを使用すると、他のロードされたユニットによって参照されている非アクティブなユニットに対しても操作を実行できます。 ただし、これは「すべての」可能なユニットに対して操作を実行することとは異なります。なぜなら、前の段落で説明したように、そのようなリストは明確に定義されていないからです。 それでも、systemctl start --all GLOB は、パターンに一致するすべてのユニットが、既知のターゲットによって取り込まれている場合に役立つことがあります。

^ top PATTERN... コマンドラインで指定された 1 つ以上のユニットを停止 (非アクティブ化) します。

このコマンドは、ユニットが存在しない場合、またはユニットの停止が禁止されている場合 (systemd.unit(5) の RefuseManualStop= を参照) に失敗します。 ただし、ユニットの停止に設定されたコマンド ( ExecStop= など) が失敗しても、マネージャーはユニットを強制的に終了するため、失敗することはありません。

停止されたユニットが他のユニットによってトリガーされる可能性がある場合、トリガーするユニットの名前を含む警告が表示されます。 --no-warn を使用して、この警告を抑制できます。

^ eload PATTERN... コマンドラインにリストされているすべてのユニットに、構成の再読み込みを要求します。 これは、systemd のユニット構成ファイルではなく、サービス固有の構成を再読み込みします。 systemd にユニットの構成ファイルを再読み込みさせたい場合は、daemon-reload コマンドを使用します。 別の言い方をすると、Apache の例では、これは Web サーバー内の Apache の httpd.conf を再読み込みするものであり、apache.service systemd ユニットファイルを再読み込みするものではありません。

このコマンドは、daemon-reload コマンドと混同しないでください。

^ estart PATTERN... コマンドラインで指定された 1 つ以上のユニットを停止し、次に開始します。 ユニットがまだ実行されていない場合、それらは開始されます。

このコマンドでユニットを再起動しても、ユニットのリソースがすべて再起動前にクリアされるわけではありません。 たとえば、サービスごとのファイル記述子ストレージ機能 (systemd.service(5) の FileDescriptorStoreMax= を参照) は、ユニットに保留中のジョブがある限り、そのまま保持され、ユニットが完全に停止され、保留中のジョブがなくなった場合にのみクリアされます。 再起動操作中にファイル記述子ストアもクリアする必要がある場合は、明示的な systemctl stop コマンドの後に systemctl start コマンドを発行する必要があります。

^ ry-restart PATTERN... コマンドラインで指定された 1 つ以上のユニットを、ユニットが実行されている場合に停止し、次に開始します。 ユニットが実行されていない場合、このコマンドは何もしません。

^ eload-or-restart PATTERN... サポートされている場合は、1 つ以上のユニットを再読み込みします。 サポートされていない場合は、停止してから開始します。 ユニットがまだ実行されていない場合、それらは開始されます。

これは、--marked と組み合わせて使用​​すると、わずかに異なる機能を持ちます。

^ ry-reload-or-restart PATTERN... サポートされている場合は、1 つ以上のユニットを再読み込みします。 サポートされていない場合は、停止してから開始します。 ユニットが実行されていない場合、このコマンドは何もしません。


バージョン229で追加されました。

isolate UNIT

コマンドラインで指定されたユニットとその依存関係を開始し、他のすべてのユニットを停止します。ただし、IgnoreOnIsolate=yes に設定されているユニットは例外です (systemd.unit(5) を参照)。拡張子なしのユニット名が指定された場合、拡張子として ".target" が想定されます。

このコマンドは危険です。新しいターゲットで有効になっていないプロセスをすぐに停止するため、現在使用中のグラフィカル環境またはターミナルを含む可能性があります。

この操作は、AllowIsolate= が有効になっているユニットでのみ許可されていることに注意してください。詳細は systemd.unit(5) を参照してください。

kill PATTERN...

ユニットの1つ以上のプロセスにUNIXプロセスシグナルを送信します。--kill-whom= を使用して、シグナルを送信するプロセスを選択します。--signal= を使用して、送信するシグナルを選択します。--kill-value= と組み合わせて、関連する値を持つPOSIXリアルタイムシグナルをキューに入れます。

clean PATTERN...

指定されたユニットの構成、状態、キャッシュ、ログ、ランタイム、またはファイル記述子ストアのデータを削除します。--what= を使用して、削除するリソースの種類を選択します。サービスユニットの場合、これは ConfigurationDirectory=、StateDirectory=、CacheDirectory=、LogsDirectory=、RuntimeDirectory= で構成されているディレクトリを削除するために使用できます。systemd.exec(5) を参照して詳細を確認してください。また、FileDescriptorStoreMax= で有効になっているファイル記述子ストアをクリアするためにも使用できます。systemd.service(5) を参照して詳細を確認してください。タイマーユニットの場合、Persistent= が使用されている場合、および --what=state が選択されている場合、これは永続的なタイムスタンプデータをクリアするために使用できます。systemd.timer(5) を参照して詳細を確認してください。このコマンドは、これらの設定のいずれかを使用するユニットにのみ適用されます。--what= が指定されていない場合、キャッシュとランタイムデータ、およびファイル記述子ストアが削除されます (これらの3種類のリソースは一般的に冗長であり、次のユニットの起動時に再現可能です)。複数の値をカンマで区切って指定できます。

指定されたユニットは、この操作を実行する前に停止されている必要があります。

表 2. --what= の可能な値

┌─────────────────┬────────────────────────────────────┐
│ Value           │ ユニット設定                       │
├─────────────────┼────────────────────────────────────┤
│ "runtime"       │ RuntimeDirectory=                  │
├─────────────────┼────────────────────────────────────┤
│ "state"         │ StateDirectory=                    │
├─────────────────┼────────────────────────────────────┤
│ "cache"         │ CacheDirectory=                    │
├─────────────────┼────────────────────────────────────┤
│ "logs"          │ LogsDirectory=                     │
├─────────────────┼────────────────────────────────────┤
│ "configuration" │ ConfigurationDirectory=            │
├─────────────────┼────────────────────────────────────┤
│ "fdstore"       │ FileDescriptorStorePreserve=       │
├─────────────────┼────────────────────────────────────┤
│ "all"           │ 上記すべて                         │
├─────────────────┼────────────────────────────────────┤
│ "help"          │ サポートされている値を表示して終了します │
└─────────────────┴────────────────────────────────────┘

バージョン 243 で追加されました。

freeze PATTERN...

コマンドラインで指定された 1 つ以上のユニットを cgroup freezer を使用してフリーズします。

ユニットをフリーズすると、対応する cgroup 内のすべてのプロセスが中断されます。中断されるとは、ユニットのプロセスが CPU で実行されるまでスケジュールされなくなることを意味します。ただし、このコマンドは、統合された cgroup 階層を使用するシステムでのみサポートされます。ユニットは、ユニットに対してジョブを実行する直前に自動的に解凍されます (例: ユニットを停止する前)。

バージョン 246 で追加されました。

thaw PATTERN...

コマンドラインで指定された 1 つ以上のユニットを解凍 (unfreeze) します。

これは freeze コマンドの逆操作であり、ユニットの cgroup 内のプロセスの実行を再開します。

バージョン 246 で追加されました。

set-property UNIT PROPERTY=VALUE...

実行時に、サポートされている場合に指定されたユニットのプロパティを設定します。これにより、systemd.resource-control(5) で説明されているように、リソース制御設定などの構成パラメータのプロパティを、実行時に変更できます。すべてのプロパティが実行時に変更できるわけではありませんが、多くのリソース制御設定は変更できます。変更は直ちに適用され、将来の起動時にディスクに保存されます。ただし、--runtime が渡された場合、設定は次の再起動までのみ適用されます。プロパティの割り当ての構文は、ユニットファイル内の割り当ての構文に非常に似ています。

例: systemctl set-property foobar.service CPUWeight=200

指定されたユニットが非アクティブに見える場合、変更は上記で説明したようにディスクにのみ保存され、ユニットが起動されたときに有効になります。

このコマンドを使用すると、複数のプロパティを同時に変更できるため、個別に設定するよりも優れています。


例:systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes

ユニットファイルの構成設定と同様に、空の値を設定すると、通常、プロパティがデフォルト値にリセットされます。

例:systemctl set-property avahi-daemon.service IPAddressDeny=

バージョン 206 で追加されました。

bind UNIT PATH [PATH]

ホストから指定されたユニットの Mount ネームスペースにファイルまたはディレクトリをバインドマウントします。最初のパス引数はホスト上のソースファイルまたはディレクトリであり、2 番目のパス引数はユニットの Mount ネームスペース内の宛先ファイルまたはディレクトリです。後者が省略された場合、ユニットの Mount ネームスペース内の宛先パスは、ホスト上のソースパスと同じになります。--read-only スイッチと組み合わせて使用すると、読み取り専用のバインドマウントが作成されます。--mkdir スイッチと組み合わせて使用すると、宛先パスが最初に作成されてからマウントが適用されます。

このオプションは、Mount ネームスペース内で実行されるユニット(例:RootImage=, PrivateMounts= など)に対してのみサポートされていることに注意してください。このコマンドは、ディレクトリ、通常ファイル、デバイスノード、AF_UNIX ソケットノード、および FIFO をバインドマウントできます。バインドマウントは一時的なものであり、現在のユニットプロセスが存在しなくなった時点で解除されます。ここで言及されているネームスペースは、バインドマウントが追加されるメインのサービスプロセスが実行されるネームスペースです。他のプロセス(ExecReload=, ExecStartPre= などで実行されるもの)は、別のネームスペースで実行されます。

カーネルでサポートされている場合、選択されたターゲットに以前のマウントが存在する場合は、新しいマウントに置き換えられます。サポートされていない場合、以前のマウントはオーバーマウントされますが、ピン留めされたままになり、アクセスできなくなります。

バージョン 248 で追加されました。

mount-image UNIT IMAGE [PATH [PARTITION_NAME:MOUNT_OPTIONS]]

ホストからイメージを指定されたユニットの Mount ネームスペースにマウントします。最初のパス引数はホスト上のソースイメージであり、2 番目のパス引数はユニットの Mount ネームスペース内(つまり、RootImage=/RootDirectory= 内)の宛先ディレクトリです。その後の引数がある場合は、パーティション名と、そのパーティションのカンマ区切りのマウントオプションのペアとして解釈されます。形式は、MountImages= 設定と同じです。--read-only スイッチと組み合わせて使用すると、読み取り専用のマウントが作成されます。--mkdir スイッチと組み合わせて使用すると、宛先パスが最初に作成されてからマウントが適用されます。

このオプションは、Mount ネームスペース内で実行されるユニット(つまり、RootImage=, PrivateMounts= など)に対してのみサポートされていることに注意してください。ここで言及されているネームスペースは、イメージがマウントされるメインのサービスプロセスが実行されるネームスペースです。ここで言及されているネームスペースは、バインドマウントが追加されるメインのサービスプロセスが実行されるネームスペースです。他のプロセス(ExecReload=, ExecStartPre= などで実行されるもの)は、別のネームスペースで実行されます。


カーネルでサポートされている場合、選択されたターゲットに対する以前のマウントは、新しいマウントによって置き換えられます。サポートされていない場合は、以前のマウントはオーバーマウントされますが、ピン留めされた状態のまま、アクセス不能になります。

例:

systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid
systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img

バージョン 248 で追加されました。

service-log-level SERVICE [LEVEL]

^ EVEL 引数が指定されていない場合、サービス SERVICE によって報告される現在のログレベルを出力します。

オプションの引数 LEVEL が指定されている場合、サービスの現在のログレベルを LEVEL に変更します。ログレベルは、一般的な syslog ログレベルである必要があります。つまり、0〜7 の範囲の値、または emergalertcriterrwarningnoticeinfodebug のいずれかの文字列です。詳細については、syslog(3) を参照してください。

サービスは、適切な BusName=destination プロパティを持ち、一般的な org.freedesktop.LogControl1(5) インターフェースを実装している必要があります。(systemctl は、一般的な D-Bus プロトコルを使用して、D-Bus 名 destinationorg.freedesktop.LogControl1.LogLevel インターフェースにアクセスします。)

バージョン 247 で追加されました。

service-log-target SERVICE [TARGET]

^ ARGET 引数が指定されていない場合、サービス SERVICE によって報告される現在のログターゲットを出力します。

オプションの引数 TARGET が指定されている場合、サービスの現在のログターゲットを TARGET に変更します。ログターゲットは、console(サービスの標準エラー出力へのログ出力)、kmsg(カーネルログバッファへのログ出力)、journalsystemd-journald.service(8) を使用してネイティブジャーナルプロトコルを介してログをシステムジャーナルに出力)、syslog(従来の syslog ソケット /dev/log へのログ出力)、null(ログ出力なし)、または auto(自動的に決定される選択肢。通常、サービスが対話的に呼び出された場合は console と同等で、それ以外の場合は journal または syslog)のいずれかの文字列である必要があります。

ほとんどのサービスでは、ログターゲットのごく一部のみが意味を持ちます。特に、ほとんどの「通常の」サービスは、consolejournal、および null のみを実装する必要があります。それ以外の場合は、適切なロギングが確立される前の非常に初期のブートでアクティブになっている低レベルのサービスにのみ適しています。

サービスは、適切な BusName=destination プロパティを持ち、一般的な org.freedesktop.LogControl1(5) インターフェースを実装している必要があります。(systemctl は、一般的な D-Bus プロトコルを使用して、D-Bus 名 destinationorg.freedesktop.LogControl1.LogLevel インターフェースにアクセスします。)

バージョン 247 で追加されました。

reset-failed [PATTERN...]

指定されたユニットの「失敗」状態をリセットします。ユニット名が指定されていない場合は、すべてのユニットの状態をリセットします。ユニットが何らかの方法で失敗した場合(プロセスがゼロ以外のエラーコードで終了した場合、異常に終了した場合、またはタイムアウトした場合)、自動的に「失敗」状態になり、その終了コードと状態が、サービスが停止/再起動されるか、このコマンドでリセットされるまで、管理者が調査できるように記録されます。

ユニットの「失敗」状態をリセットすることに加えて、さまざまなユニット固有のプロパティもリセットされます。すべてのユニットタイプに対して、開始レート制限カウンタがゼロにリセットされ、サービスユニットの再起動カウンタもリセットされます。したがって、ユニットの開始制限(StartLimitIntervalSec=/StartLimitBurst= で構成される)に達し、ユニットが再び開始されるのを拒否する場合は、このコマンドを使用して、再度開始できるようにします。


whoami [PID...]

指定されたPIDで参照されるプロセスが属するユニットを返します(1行に1つ)。PIDが指定されていない場合は、systemctlコマンドが呼び出されたユニットを返します。

バージョン254で追加されました。

ユニットファイルコマンド

list-unit-files [PATTERN...]

システムにインストールされているユニットファイルをリストし、その有効化状態(is-enabledによって報告される)を組み合わせます。1つまたは複数のPATTERNが指定された場合、名前がこれらのPATTERNのいずれかに一致するユニットファイルのみが表示されます(ユニットファイルシステムのパスに一致するパターンはサポートされていません)。

list-unitsとは異なり、このコマンドは明示的にインスタンス化されたユニットに加えて、テンプレートユニットもリストします。

バージョン233で追加されました。

enable UNIT..., enable PATH...

1つまたは複数のユニットまたはユニットインスタンスを有効にします。これにより、指定されたユニットファイルの[Install]セクションでエンコードされたシンボリックリンクのセットが作成されます。シンボリックリンクが作成されると、システムマネージャの構成が再読み込みされます(daemon-reloadと同等の方法で)、変更が直ちに考慮されるようにします。ただし、これにより有効になっているユニットがすべて起動するわけではありません。これを希望する場合は、--nowスイッチと組み合わせて、または後で適切な引数でstartを呼び出します。ユニットインスタンスの有効化(つまり、_の形式のユニットの有効化)の場合、ユニット構成ディレクトリに、インスタンスと同じ名前のシンボリックリンクが作成されますが、これらはインスタンス化されている単一のテンプレートユニットファイルにリンクされます。

このコマンドは、有効なユニット名(この場合、さまざまなユニットファイルディレクトリで、適切な名前のユニットファイルが自動的に検索されます)またはユニットファイルへの絶対パス(この場合、これらのファイルは直接読み込まれます)のいずれかを想定します。指定されたユニットファイルが通常のユニットファイルディレクトリの外部にある場合、追加のシンボリックリンクが作成され、ユニット構成パスにリンクされます。これにより、startなどのコマンドによって要求されたときに、そのファイルが見つかるようにします。リンクされたユニットファイルが配置されているファイルシステムは、systemdが起動されたときにアクセス可能である必要があります(たとえば、/home/または/var/の下にあるものは許可されません。ただし、これらのディレクトリがルートファイルシステムにある場合は許可されます)。

このコマンドは、実行されたファイルシステム操作を出力します。この出力は、--quietを渡すことで抑制できます。

この操作では、ユニットファイルの[Install]セクションで提案されているシンボリックリンクのみが作成されます。このコマンドは、ユニット構成ディレクトリを操作するための推奨される方法ですが、管理者は、ユニット構成ディレクトリの下にシンボリックリンクを配置または削除することで、追加の変更を手動で行うことができます。これは、提案されているデフォルトのインストールから逸脱する構成を作成する場合に特に役立ちます。この場合、管理者は、必要に応じてdaemon-reloadを手動で呼び出して、変更が考慮されるようにする必要があります。


インストール情報のないユニットに対してこの操作を実行すると、警告が表示されます。 --no-warn を使用して、この警告を抑制できます。

ユニットを有効にすることは、start コマンドで行うように、ユニットを開始(アクティブ化)することとは混同しないでください。ユニットの有効化と開始は、それぞれ独立した操作です。ユニットは、開始されずに有効にでき、開始されずに有効にすることもできます。有効化とは、ユニットをさまざまな場所に「フック」することです(たとえば、システム起動時にユニットが自動的に開始されるようにしたり、特定の種類のハードウェアが接続されたときにユニットが開始されるようにしたりします)。開始とは、実際にデーモンプロセスを起動(サービスユニットの場合)、またはソケットをバインド(ソケットユニットの場合)することです。

--system、--user、--runtime、または --global が指定されているかどうかに応じて、このコマンドは、ユニットをシステム全体、呼び出しユーザーのみ、またはシステムの現在の起動のみ、あるいはすべてのユーザーの今後のログインに対して有効にします。ただし、最後のケースでは、systemd デーモン構成は再読み込みされません。

マスクされたユニットに対して enable を使用することはサポートされておらず、エラーが発生します。

disable UNIT...

1つ以上のユニットを無効にします。これにより、指定されたユニットに対応するユニットファイルのシンボリックリンクがすべて、ユニット構成ディレクトリから削除され、enable または link によって行われた変更が元に戻されます。ただし、enable または link で実際に作成したシンボリックリンクだけでなく、手動で作成したシンボリックリンクも含め、一致するユニットファイルへのすべてのシンボリックリンクが削除されることに注意してください。disable は enable の効果を取り消しますが、2つのコマンドはそれ以外には対称的ではなく、disable は、それ以前の enable コマンドが同じユニットに対して実行したよりも多くのシンボリックリンクを削除する場合があります。

このコマンドは、有効なユニット名のみを想定しており、ユニットファイルのパスは受け付けません。

コマンドの引数として指定されたユニットに加えて、操作対象のユニットファイルの [Install] セクションに含まれる Also= 設定にリストされているすべてのユニットも無効になります。

このコマンドは、操作が完了した後に、システムマネージャーの構成を暗黙的に再読み込みします。ただし、このコマンドは、無効化されているユニットを暗黙的に停止しません。これを希望する場合は、--now スイッチをこのコマンドと組み合わせて使用するか、後で適切な引数を使用して stop コマンドを呼び出します。

このコマンドは、実行されたファイルシステム操作(シンボリックリンクの削除)に関する情報を出力します。この出力を抑制するには、--quiet を渡します。

ユニットが無効になったものの、トリガーユニットがまだアクティブになっている場合、トリガーユニットの名前を含む警告が表示されます。--no-warn を使用して、この警告を抑制できます。

このコマンドを --user オプションで使用すると、操作対象のユニットは、グローバルスコープでもまだ有効になっている可能性があり、その結果、ユーザースコープでの無効化が正常に完了した後でも、ユニットが自動的に開始される場合があります。この場合、警告が表示されます。この警告は、--no-warn を使用して抑制できます。


このコマンドは、enableと同様に、--system--user--runtime--global、および--no-warnを考慮します。

バージョン238で追加されました。

reenable UNIT...

コマンドラインで指定された1つ以上のユニットを再有効化します。これは、disableenableの組み合わせであり、ユニットファイルが有効になっているシンボリックリンクを、その[Install]セクションで構成されているデフォルトにリセットする場合に役立ちます。このコマンドは、ユニット名のみを想定しており、ユニットファイルへのパスは受け入れません。

このコマンドは、操作が完了した後にシステムマネージャーの構成を暗黙的に再読み込みします。ただし、このコマンドは、無効化されているユニットを暗黙的に再起動しません。これを実行する場合は、このコマンドを--nowスイッチと組み合わせて使用するか、後で適切な引数を付けてtry-restartコマンドを呼び出します。

バージョン238で追加されました。

preset UNIT...

コマンドラインで指定された1つ以上のユニットファイルの有効/無効状態を、プリセットポリシーファイルで構成されているデフォルトにリセットします。これは、disableまたはenableと同じ効果があり、ユニットがプリセットファイルにどのようにリストされているかによって異なります。

^ -preset-mode=を使用して、ユニットを有効および無効にするか、または有効にするか、または無効にするかを制御します。

ユニットにインストール情報が含まれていない場合、このコマンドによってそれらは静かに無視されます。UNITは実際のユニット名である必要があり、エイリアス名は静かに無視されます。

プリセットポリシー形式の詳細については、systemd.preset(5)を参照してください。

バージョン238で追加されました。

preset-all

インストールされているすべてのユニットファイルを、上記で説明したプリセットポリシーファイルで構成されているデフォルトにリセットします。

^ -preset-mode=を使用して、ユニットを有効および無効にするか、または有効にするか、または無効にするかを制御します。

バージョン215で追加されました。

is-enabled UNIT...

指定されたユニットファイルが有効になっているかどうか(enableと同様)を確認します。少なくとも1つが有効になっている場合、終了コードとして0を返し、そうでない場合は0以外の値を返します。現在の有効化ステータス(次の表を参照)を出力します。この出力を抑制するには、--quietを使用します。インストールターゲットを表示するには、--fullを使用します。

表3. is-enabled出力

┌───────────────────┬────────────────────────────┬───────────┐
│ Name              │ Description                │ Exit Code │
├───────────────────┼────────────────────────────┼───────────┤
│ "enabled"         │ `.wants/`、`.requires/`、または`Alias=`によって有効化     │           │
├───────────────────┤                                                  │           │
│ "enabled-runtime" │ シンボリックリンク(`/etc/systemd/system/`に永続的に、または`/run/systemd/system/`に一時的に) │ 0         │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "linked"          │ 1つ以上のシンボリックリンクを通じてユニットファイルが利用可能     │           │
├───────────────────┤                                                  │           │
│ "linked-runtime"  │ シンボリックリンク(`/etc/systemd/system/`に永続的に、または`/run/systemd/system/`に一時的に)     │ \> 0       │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "alias"           │ 名前はエイリアス(別のユニットファイルへのシンボリックリンク)     │ 0         │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "masked"          │ 完全に無効化されており、それに対する起動操作はすべて失敗する(`/etc/systemd/system/`に永続的に、または`/run/systemd/system/`に一時的に)     │           │
├───────────────────┤                                                  │           │
│ "masked-runtime"  │ 完全に無効化されており、それに対する起動操作はすべて失敗する(`/etc/systemd/system/`に永続的に、または`/run/systemd/system/`に一時的に)     │ \> 0       │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "static"          │ ユニットファイルは有効になっておらず、有効化のための[Install]ユニットファイルセクションの規定も持っていない     │ 0         │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "indirect"        │ ユニットファイル自体は有効になっていないが、[Install]ユニットファイルセクションに非空の`Also=`設定があり、他の有効になっている可能性のあるユニットファイルをリストしているか、または異なる名前でシンボリックリンクとしてエイリアスになっている。テンプレートユニットファイルの場合、`DefaultInstance=`で指定されたものとは異なるインスタンスが有効になっている     │ 0         │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "disabled"        │ ユニットファイルは有効になっておらず、[Install]セクションにインストール手順が含まれている     │ \> 0       │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "generated"       │ ユニットファイルは、ジェネレーターツールによって動的に生成された。`systemd.generator(7)`を参照してください。生成されたユニットファイルは有効になっていない場合があり、代わりにジェネレーターによって暗黙的に有効になっている     │ 0         │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "transient"       │ ユニットファイルは、実行時APIを使用して動的に作成された。一時的なユニットファイルは有効になっていない場合がある     │ 0         │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "bad"             │ ユニットファイルが無効であるか、他のエラーが発生した。ただし、`is-enabled`は実際にはこの状態を返さないが、エラーメッセージを出力する。ただし、`list-unit-files`によって出力されるユニットファイルのリストには、これを示す場合がある     │ \> 0       │
│                   │                                                  │           │
├───────────────────┼────────────────────────────┼───────────┤
│ "not-found"       │ ユニットファイルが存在しない     │ 4         │
└───────────────────┴────────────────────────────┴───────────┘

バージョン 238 で追加されました。

mask UNIT...

コマンドラインで指定された 1 つ以上のユニットをマスクします。これにより、これらのユニットファイルが /dev/null にリンクされ、起動できなくなります。これは disable よりも強力な機能で、有効化や手動での起動など、あらゆる種類のユニットの起動を禁止します。このオプションは慎重に使用してください。--runtime オプションを使用すると、システムの次回の再起動まで一時的にマスクすることができます。--now オプションを使用すると、ユニットも停止していることを確認できます。このコマンドは、有効なユニット名のみを想定しており、ユニットファイルのパスは受け付けません。

これにより、/etc/systemd/system/ ( --runtime が指定されていない場合) または /run/systemd/system/ ( --runtime が指定されている場合) に、ユニット名の下にあるシンボリックリンクが作成されます。これらのディレクトリに一致するユニットファイルがすでに存在する場合、この操作は失敗します。つまり、この操作は主に、ベンダーによって提供されるユニットをマスクする場合に役立ちます (これらは /usr/lib/systemd/system/ に保存されており、上記の 2 つのディレクトリには保存されていません)。ただし、ローカルで作成されたユニット (通常は上記の 2 つのディレクトリに配置されます) には、この操作は適用されません。同様の制限は、--user モードにも適用されます。この場合、ディレクトリはユーザーのホームディレクトリの下にあります。

ユニットがマスクされたにもかかわらず、そのユニットをトリガーするユニットがまだアクティブになっている場合、警告が表示されます。警告を抑制するには、--no-warn を使用します。

バージョン 238 で追加されました。

unmask UNIT...

^ ask の効果を元に戻して、1 つ以上のユニットファイルをマスク解除します。このコマンドは、有効なユニット名のみを想定しており、ユニットファイルのパスは受け付けません。

バージョン 238 で追加されました。

link PATH...

ユニットファイル検索パスにないユニットファイルを、ユニットファイル検索パスにリンクします。このコマンドは、ユニットファイルへの絶対パスを想定しています。このコマンドの効果は、disable で元に戻すことができます。このコマンドの効果は、ユニットファイルがユニット検索パスに直接インストールされていなくても、start などのコマンドでユニットファイルが利用可能になることです。リンクされたユニットファイルが配置されているファイルシステムは、systemd が開始されるときにアクセス可能でなければなりません (例: /home/ または /var/ の下にあるものは、これらのディレクトリがルートファイルシステムにある場合を除き、許可されません)。


バージョン 233 で追加されました。

revert UNIT...

指定されたユニットファイルをベンダーバージョンに復元します。このコマンドは、指定されたユニットを修正するドロップイン構成ファイルと、ベンダーが提供するユニットファイルをオーバーライドするユーザー設定のユニットファイルを削除します。具体的には、ユニット「foo.service」の場合、一致するディレクトリ「foo.service.d/」とその中に含まれるすべてのファイルが、永続構成ディレクトリとランタイム構成ディレクトリ(つまり、/etc/systemd/system と /run/systemd/system の下)から削除されます。また、ユニットファイルにベンダーが提供するバージョン(つまり、/usr/ の下に配置されたユニットファイル)がある場合、一致する永続またはランタイムのユニットファイル(ベンダーが提供するユニットファイルをオーバーライドするもの)も削除されます。ただし、ユニットファイルにベンダーが提供するバージョンがない場合(つまり、/etc/systemd/system または /run/systemd/system の下にのみ定義されており、/usr/ に保存されたユニットファイルではない場合)、そのユニットファイルは削除されません。また、ユニットがマスクされている場合は、マスクが解除されます。

このコマンドを使用すると、systemctl editsystemctl set-propertysystemctl mask で行われたすべての変更を元に戻し、元のユニットファイルとその設定を復元できます。

バージョン 230 で追加されました。

add-wants TARGET UNIT..., add-requires TARGET UNIT...

指定されたターゲットに、1 つまたは複数のユニットに対して「Wants=」または「Requires=」依存関係を追加します。

このコマンドは、--system--user--runtime--globalenable と同様の方法で考慮します。

バージョン 217 で追加されました。

edit UNIT...

ドロップインスニペットまたはメインのユニットファイルを編集または置き換えて、指定されたユニットの定義を拡張またはオーバーライドします。

^ -system(デフォルト)、--user、または --global が指定されている場合、このコマンドは、それぞれシステムユニットファイル、呼び出しユーザーのユニットファイル、またはすべてのユーザー間で共有されるユニットファイルに対して動作します。

エディター(「環境」セクションを参照)は、一時ファイルに対して呼び出され、エディターが正常に終了すると、そのファイルが実際の場所に書き込まれます。編集が完了すると、構成が再ロードされます。これは、systemctl daemon-reload --system または systemctl daemon-reload --user と同等です。--global を指定した場合、再ロードは実行されず、編集は後続のログイン時(または別の方法でリロードが要求された場合)にのみ有効になります。

^ -full が指定された場合、メインのユニットファイルの置換または編集が行われます。それ以外の場合は、ドロップインファイルが作成または編集されます。

^ -drop-in= が指定された場合、デフォルトの override.conf ではなく、指定されたドロップインファイル名が使用されます。

ユニットは存在している必要があります。つまり、そのメインのユニットファイルが存在している必要があります。--force が指定された場合、この要件は無視され、新しいユニットが作成される場合があります(--full を使用)、または存在しないユニットのドロップインが作成される場合があります。


^ -runtime が指定された場合、変更は /run/ に一時的に行われ、次回の再起動時に失われます。

^ -stdin が指定された場合、新しいコンテンツは標準入力から読み込まれます。このモードでは、ファイルの元のコンテンツは破棄されます。

一時ファイルが終了時に空の場合、関連するユニットの変更はキャンセルされます。

このコマンドは、ユニットをリモートで編集するために使用することはできず、/etc/ 内のユニットを一時的に編集することもできません。なぜなら、それらは /run/ よりも優先されるからです。

バージョン 218 で追加されました。

^ et-default 起動時に使用するデフォルトのターゲットを返します。これは、default.target がリンクされているターゲットユニットの名前を返します。

バージョン 205 で追加されました。

^ et-default TARGET 起動時に使用するデフォルトのターゲットを設定します。これにより、default.target へのシンボリックリンクが、指定されたターゲットユニットに設定されます。

バージョン 205 で追加されました。

マシンコマンド

^ ist-machines [PATTERN...] ホストと、実行中のすべてのローカルコンテナをその状態とともにリストします。1つ以上の PATTERN が指定された場合、それらのいずれかに一致するコンテナのみが表示されます。

バージョン 212 で追加されました。

ジョブコマンド

^ ist-jobs [PATTERN...] 進行中のジョブをリストします。1つ以上の PATTERN が指定された場合、それらのいずれかに一致するユニットのジョブのみが表示されます。

^ -after または --before と組み合わせて使用すると、各ジョブがどの他のジョブを待っているか、およびどの他のジョブがそのジョブを待っているかに関する情報がリストに追加されます。上記の参照を参照してください。

バージョン 233 で追加されました。

^ ancel [JOB...] コマンドラインで指定された数値ジョブ ID によって、1つ以上のジョブをキャンセルします。ジョブ ID が指定されていない場合、保留中のすべてのジョブをキャンセルします。

バージョン 233 で追加されました。

環境コマンド

systemd は、マネージャーによって起動されたプロセスに渡される環境ブロックをサポートします。変数の名前には、ASCII 文字、数字、およびアンダースコアを含めることができます。変数の名前は空にすることはできず、数字で始めることもできません。変数の値では、ほとんどの文字が許可されますが、シーケンス全体は有効な UTF-8 でなければなりません。(制御文字(改行(NL)、タブ(TAB)、エスケープ文字(ESC))は有効な ASCII および有効な UTF-8 であることに注意してください。)環境ブロックの合計長は、sysconf(3) によって定義された _SC_ARG_MAX 値によって制限されます。

^ how-environment systemd マネージャー環境ブロックをダンプします。これは、マネージャーによって起動されたすべてのプロセスに渡される環境ブロックです。環境ブロックは、ほとんどのシェルにソースとして使用できる形式でダンプされます。変数値に特殊文字や空白が含まれていない場合、エスケープは実行されず、代入は VARIABLE=value の形式になります。空白またはシェルで特別な意味を持つ文字が含まれている場合、ドル-シングルクォートエスケープが使用され、代入は VARIABLE=$'value' の形式になります。この構文は、bash(1)zsh(1)ksh(1)、および [busybox]({filename}../../busybox)(1)ash(1) でサポートされていますが、dash(1) または fish(1) ではサポートされていません。


これは、構成ファイル、環境ジェネレーター、および IPC (以下に説明する set-environment) 経由で構成された環境変数の組み合わせ、つまり、効果的な環境ブロックを表示します。ユニットプロセスがフォークされると、この結合された環境ブロックは、ユニットごとの環境変数とさらに組み合わされ、それらはこのコマンドでは表示されません。

set-environment VARIABLE=VALUE...

コマンドラインで指定されたように、1 つまたは複数の systemd マネージャー環境変数を設定します。変数名と値が上記のルールに準拠しない場合、このコマンドは失敗します。

これは、systemd マネージャーの構成や環境ジェネレーターから構成された環境ブロックとは別の環境ブロック上で動作します。プロセスが呼び出されるたびに、これらの 2 つのブロックが結合され (サービスごとの環境変数も組み込まれます)、プロセスに渡されます。show-environment コマンドは、ブロックの組み合わせを表示します (上記参照)。

バージョン 233 で追加されました。

unset-environment VARIABLE...

1 つまたは複数の systemd マネージャー環境変数を削除します。変数名のみが指定された場合、その値に関係なく、変数は削除されます。変数とその値が指定された場合、変数は指定された値を持っている場合にのみ削除されます。

これは、systemd マネージャーの構成や環境ジェネレーターから構成された環境ブロックとは別の環境ブロック上で動作します。プロセスが呼び出されるたびに、これらの 2 つのブロックが結合され (サービスごとの環境変数も組み込まれます)、プロセスに渡されます。show-environment コマンドは、ブロックの組み合わせを表示します (上記参照)。これは、このコマンドを使用して、サービスマネージャーの構成ファイルまたはジェネレーターで定義された環境変数を削除できないことを意味します。

バージョン 233 で追加されました。

import-environment VARIABLE...

クライアントで設定されたすべての環境変数、または 1 つ以上の環境変数を systemd マネージャーの環境ブロックにインポートします。環境変数名のリストが渡された場合、クライアント側の値がマネージャーの環境ブロックにインポートされます。名前が有効な環境変数名ではなく、または上記のルールに従わない無効な値を持っている場合、エラーが発生します。引数が渡されない場合、systemctl プロセスによって継承された環境ブロック全体がインポートされます。このモードでは、継承された無効な環境変数はすべて静かに無視されます。

完全な継承環境ブロックのインポート (引数なしでこのコマンドを呼び出す) は非推奨です。シェルは、ローカルでのみ意味があり、シェルの子孫であるプロセスに対してのみ意味がある、多数の変数を設定します。グローバルな環境ブロック内のこのような変数は、他のプロセスにとって混乱を招く可能性があります。

バージョン 209 で追加されました。

マネージャーの状態コマンド

daemon-reload

systemd マネージャーの構成を再読み込みします。これにより、すべてのジェネレーターが再実行され (systemd.generator(7) を参照)、すべてのユニットファイルが再読み込みされ、依存関係ツリー全体が再作成されます。デーモンが再読み込みされている間、ユーザー構成の代わりに systemd がリッスンするすべてのソケットは引き続きアクセス可能になります。


このコマンドは、reload コマンドと混同しないでください。

daemon-reexec

systemd マネージャーを再実行します。これにより、マネージャーの状態がシリアライズされ、プロセスが再実行され、状態が再度デシリアライズされます。このコマンドは、デバッグやパッケージのアップグレードを除いて、ほとんど役に立ちません。場合によっては、重い daemon-reload として役立つことがあります。デーモンが再実行されている間、ユーザー構成のために systemd がリッスンしているすべてのソケットはアクセス可能な状態を維持します。

log-level [LEVEL]

引数が指定されていない場合、マネージャーの現在のログレベルを出力します。オプションの引数 LEVEL が指定された場合、現在のマネージャーのログレベルを LEVEL に変更します (systemd({filename}../../systemd)(1) で説明されている --log-level= と同じ値を受け入れます)。

バージョン 244 で追加されました。

log-target [TARGET]

引数が指定されていない場合、マネージャーの現在のログターゲットを出力します。オプションの引数 TARGET が指定された場合、現在のマネージャーのログターゲットを TARGET に変更します (systemd({filename}../../systemd)(1) で説明されている --log-target= と同じ値を受け入れます)。

バージョン 244 で追加されました。

service-watchdogs [yes|no]

引数が指定されていない場合、マネージャーのサービスランタイムウォッチドッグの現在の状態を出力します。オプションのブール引数が指定された場合、グローバルにサービスランタイムウォッチドッグ (WatchdogSec=) と緊急アクション (例: OnFailure= または StartLimitAction=) を有効または無効にします。systemd.service(5) を参照してください。ハードウェアウォッチドッグは、この設定の影響を受けません。

バージョン 244 で追加されました。

システムコマンド

is-system-running

システムが運用中かどうかを確認します。システムが完全に起動し、特に起動中、シャットダウン中、またはメンテナンスモードではなく、失敗したサービスがない場合に、成功 (終了コード 0) を返します。それ以外の場合は、失敗を返します (終了コードはゼロ以外)。さらに、現在の状態が短い文字列で標準出力に出力されます。--quiet を使用して、この出力を抑制できます。

--wait を使用すると、現在の状態を出力し、適切なエラー状態を返す前に、ブートプロセスが完了するまで待ちます。--wait が使用されている場合、initializing または starting の状態は報告されず、代わりにコマンドは、running や degraded などの後の状態に到達するまでブロックします。

表 4. is-system-running の出力

┌──────────────┬────────────────────────────┬───────────┐
│ Name         │ Description                │ Exit Code │
├──────────────┼────────────────────────────┼───────────┤
│ initializing │ 早期ブート、basic.target に到達する前、または │ \> 0       │
│              │ メンテナンス状態に入る前。                   │           │
├──────────────┼────────────────────────────┼───────────┤
│ starting     │ 後のブート、最初のジョブキューがアイドルになる前、または │ \> 0       │
│              │ 1 つのレスキューターゲットが到達する前。                   │           │
├──────────────┼────────────────────────────┼───────────┤
│ running      │ システムは完全に運用中です。                  │ 0         │
├──────────────┼────────────────────────────┼───────────┤
│ degraded     │ システムは運用中ですが、1 つまたは複数のユニットが失敗しました。│ \> 0       │
├──────────────┼────────────────────────────┼───────────┤
│ maintenance  │ 救出または緊急ターゲットがアクティブです。          │ \> 0       │
├──────────────┼────────────────────────────┼───────────┤
│ stopping     │ マネージャーはシャットダウンしています。          │ \> 0       │
├──────────────┼────────────────────────────┼───────────┤
│ offline      │ マネージャーは実行されていません。具体的には、システムマネージャー (PID 1) として互換性のないプログラムが実行されている場合に、このオペレーション状態になります。│ \> 0       │
├──────────────┼────────────────────────────┼───────────┤
│ unknown      │ オペレーション状態を決定できませんでした。リソースの不足、または他のエラーが原因です。│ \> 0       │
└──────────────┴────────────────────────────┴───────────┘

バージョン 215 で追加されました。

default

デフォルトモードに入ります。これは、systemctl isolate default.target と同じです。この操作はデフォルトでブロッキングされます。非同期動作を要求するには、--no-block を使用します。

rescue

レスキューモードに入ります。これは、systemctl isolate rescue.target と同じです。この操作はデフォルトでブロッキングされます。非同期動作を要求するには、--no-block を使用します。

emergency

緊急モードに入ります。これは、systemctl isolate emergency.target と同じです。この操作はデフォルトでブロッキングされます。非同期動作を要求するには、--no-block を使用します。

halt

システムをシャットダウンして停止します。これは、systemctl start halt.target --job-mode=replace-irreversibly --no-block とほぼ同じですが、すべてのユーザーにウォールメッセージも出力します。このコマンドは非同期です。シャットダウン操作がキューに入れられた後に戻り、完了を待機しません。この操作は、OSカーネルをシャットダウンした後、ハードウェアの電源を入れたままにするため、systemctl poweroff を使用してシステムを完全にシャットダウンしてください(以下を参照)。

--force と組み合わせると、実行中のすべてのサービスのシャットダウンをスキップしますが、すべてのプロセスは強制終了され、すべてのファイルシステムはアンマウントされるか、読み取り専用でマウントされ、その後すぐにシステムが停止します。--force を 2 回指定すると、プロセスを終了またはファイルシステムをアンマウントすることなく、操作がすぐに実行されます。これにより、データが失われる可能性があります。--force が 2 回指定された場合、halt 操作は systemctl 自身によって実行され、システムマネージャーに連絡されません。つまり、システムマネージャーがクラッシュした場合でも、このコマンドは成功するはずです。

--when= と組み合わせると、指定されたタイムスタンプの後にシャットダウンがスケジュールされます。--when=cancel を指定すると、シャットダウンがキャンセルされます。

poweroff

システムをシャットダウンして電源を切ります。これは、systemctl start poweroff.target --job-mode=replace-irreversibly --no-block とほぼ同じですが、すべてのユーザーにウォールメッセージも出力します。このコマンドは非同期です。電源オフ操作がキューに入れられた後に戻り、完了を待機しません。

このコマンドは、halt と同様に --force および --when= をサポートします。

reboot

システムをシャットダウンして再起動します。

このコマンドは、systemctl start reboot.target --job-mode=replace-irreversibly --no-block とほぼ同じですが、すべてのユーザーにウォールメッセージも出力します。このコマンドは非同期です。再起動操作がキューに入れられた後に戻り、完了を待機しません。

--reboot-argument= スイッチが指定された場合、reboot(2) システムコールにオプションの引数として渡されます。

--boot-loader-entry=、--boot-loader-menu=、および --firmware-setup オプションを使用して、再起動後に何を行うかを選択できます。これらのオプションの詳細については、それぞれの説明を参照してください。

このコマンドは、halt と同様に --force および --when= をサポートします。


^ exec --load を使用して新しいカーネルがロードされた場合、SYSTEMCTL_SKIP_AUTO_KEXEC=1 が設定されていない限り、再起動の代わりに kexec が実行されます。新しいルートファイルシステムが /run/nextroot/ にセットアップされた場合、再起動の代わりにソフトリブートが実行されます。ただし、SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1 が設定されている場合は例外です。

バージョン 246 で追加されました。

kexec

kexec を使用してシステムをシャットダウンおよび再起動します。このコマンドは、まだロードされていない kexec カーネルをロードするか、失敗します。カーネルは、別のステップで事前にロードできます。これは、カスタム initrd または追加のカーネルコマンドラインオプションが必要な場合に特に役立ちます。--force を使用して、kexec カーネルなしで続行できます。つまり、通常の再起動を実行します。最終的な再起動ステップは、systemctl start kexec.target --job-mode=replace-irreversibly --no-block と同等です。

カーネルをロードするには、UAPI.1 Boot Loader Specification[1] に従って列挙を行い、デフォルトのブートエントリをロードします。このステップを成功させるには、システムが UEFI を使用し、ブートローダーエントリが適切に構成されている必要があります。bootctl list を使用してブートエントリを一覧表示できます。詳細は bootctl(1) を参照してください。

このコマンドは非同期です。再起動操作がキューに入れられた後、完了を待たずに戻ります。

このコマンドは、halt と同様に --force および --when= オプションをサポートします。

^ exec --load を使用して新しいカーネルがロードされた場合、再起動が呼び出されると kexec が実行されます。ただし、SYSTEMCTL_SKIP_AUTO_KEXEC=1 が設定されている場合は例外です。

soft-reboot

ユーザー空間をシャットダウンし、再起動します。これは、systemctl start soft-reboot.target --job-mode=replace-irreversibly --no-block と同等です。このコマンドは非同期です。再起動操作がキューに入れられた後、完了を待たずに戻ります。

このコマンドは、halt と同様に --force および --when= オプションをサポートします。

この操作はユーザー空間のみを再起動し、カーネルは実行状態を維持します。詳細は systemd-softreboot.service(8) を参照してください。

新しいルートファイルシステムが /run/nextroot/ にセットアップされた場合、再起動が呼び出されるとソフトリブートが実行されます。ただし、SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1 が設定されている場合は例外です。

バージョン 254 で追加されました。

exit [EXIT_CODE]

サービスマネージャーに終了するように要求します。これは、ユーザーサービスマネージャー(つまり、--user オプションと組み合わせて使用)の場合、またはコンテナー内でのみサポートされており、それ以外の場合は poweroff と同等です。このコマンドは非同期です。終了操作がキューに入れられた後、完了を待たずに戻ります。

サービスマネージャーは、EXIT_CODE が指定された場合、指定された終了コードで終了します。

バージョン 227 で追加されました。

switch-root [ROOT [INIT]]

別のルートディレクトリに切り替え、その下に新しいシステムマネージャープロセスを実行します。これは initrd で使用することを目的としており、initrd のシステムマネージャープロセス(別名「init」プロセス、PID 1)から、実際のホストのルートファイルシステムからロードされたメインのシステムマネージャープロセスに移行します。この呼び出しは 2 つの引数を受け取ります。新しいルートディレクトリになるディレクトリと、その下に実行する新しいシステムマネージャーバイナリへのパス(PID 1 として)。両方が省略されるか、または最初の引数が空の文字列の場合、デフォルトは /sysroot/ になります。2 番目の引数が省略されるか、空の文字列の場合、systemd バイナリが自動的に検索され、サービスマネージャーとして使用されます。システムマネージャーのパスが省略されるか、空の文字列であるか、または systemd バイナリへのパスと同じ場合、initrd のシステムマネージャープロセスの状態がメインのシステムマネージャーに渡されます。これにより、initrd ブートフェーズに関与したサービスのステートを後で検査できるようになります。


バージョン209で追加されました。

sleep

システムをサスペンド、ハイバネーション、ハイブリッドスリープ、またはサスペンドからのハイバネーションを使用してスリープさせます。 使用するスリープ操作は、systemd-logind.service(8)によって自動的に選択されます。 デフォルトでは、サスペンドからのハイバネーションが使用され、サポートされていない場合はサスペンドにフォールバックしてからハイバネーションされます。詳細は、logind.conf(5)のSleepOperation=設定を参照してください。このコマンドは非同期であり、スリープ操作が正常にキューに入れられた後に返されます。スリープ/復帰サイクルが完了するまで待機しません。

バージョン256で追加されました。

suspend

システムをサスペンドします。これにより、特別なターゲットユニットsuspend.targetがアクティブ化されます。 このコマンドは非同期であり、サスペンド操作が正常にキューに入れられた後に返されます。サスペンド/復帰サイクルが完了するまで待機しません。

--forceが指定されている場合、systemd-logindが操作でエラーを返した場合は、エラーが無視され、操作はターゲットユニットを開始することによって直接再試行されます。

hibernate

システムをハイバネーションします。これにより、特別なターゲットユニットhibernate.targetがアクティブ化されます。 このコマンドは非同期であり、ハイバネーション操作が正常にキューに入れられた後に返されます。ハイバネーション/復帰サイクルが完了するまで待機しません。

hybrid-sleep

システムをハイバネーションし、サスペンドします。これにより、特別なターゲットユニットhybrid-sleep.targetがアクティブ化されます。 このコマンドは非同期であり、ハイブリッドスリープ操作が正常にキューに入れられた後に返されます。スリープ/復帰サイクルが完了するまで待機しません。

suspend-then-hibernate

システムをサスペンドし、バッテリー残量が少なくなったり、systemd-sleep.confで指定された遅延が経過したりしたときにハイバネーションします。これにより、特別なターゲットユニットsuspend-then-hibernate.targetがアクティブ化されます。 このコマンドは非同期であり、ハイブリッドスリープ操作が正常にキューに入れられた後に返されます。スリープ/復帰サイクルまたはハイバネーション/復帰サイクルが完了するまで待機しません。

バージョン196で追加されました。

suspend-then-hibernate

システムをサスペンドし、バッテリー残量が少なくなるとハイバネーションします。または、systemd-sleep.confで指定された遅延が経過するとハイバネーションします。これにより、特別なターゲットユニットsuspend-then-hibernate.targetがアクティブ化されます。このコマンドは非同期であり、ハイブリッドスリープ操作が正常にキューに入れられた後に返されます。スリープ/復帰サイクルまたはハイバネーション/復帰サイクルが完了するまで待機しません。

suspend-then-hibernate

システムをサスペンドし、バッテリー残量が少なくなるとハイバネーションします。または、systemd-sleep.confで指定された遅延が経過するとハイバネーションします。これにより、特別なターゲットユニットsuspend-then-hibernate.targetがアクティブ化されます。このコマンドは非同期であり、ハイブリッドスリープ操作が正常にキューに入れられた後に返されます。スリープ/復帰サイクルまたはハイバネーション/復帰サイクルが完了するまで待機しません。

バージョン240で追加されました。

パラメータ構文

上記のユニットコマンドは、単一のユニット名(UNITとして指定)または複数のユニット仕様(PATTERN...)のいずれかを取ります。最初のケースでは、ユニット名にサフィックスが付いているか、または付いていないかのどちらかを指定します。サフィックスが指定されていない場合(ユニット名が「省略形」)、systemctlは適切なサフィックスである".service"を、または特定の種類のユニットでのみ動作するコマンドの場合はタイプ固有のサフィックスを追加します。例えば、


# systemctl start sshd

# systemctl start sshd.service

は同等であり、

# systemctl isolate default

# systemctl isolate default.target

も同様です。

(絶対)パスで指定されたデバイスノードは、自動的にデバイスユニット名に変換され、 (絶対)パスで指定されたその他のパスは、マウントユニット名に変換されます。

# systemctl status /dev/sda
# systemctl status /home

は、以下と同等です。

# systemctl status dev-sda.device
# systemctl status home.mount

2番目の場合、シェルスタイルのグロブは、現在メモリにあるすべてのユニットのプライマリ名に対して照合されます。リテラルなユニット名は、サフィックスの有無にかかわらず、上記の最初のケースと同様に扱われます。これは、リテラルなユニット名は常に正確に1つのユニットを参照しますが、グロブは0個のユニットに一致する可能性があり、これはエラーとは見なされないことを意味します。

グロブパターンはfnmatch(3)を使用するため、通常のシェルスタイルのグロビングルールが使用され、"*", "?", "[]"を使用できます。詳細については、glob(7)を参照してください。パターンは、現在メモリにあるユニットのプライマリ名に対して照合され、一致するものがないパターンは静かにスキップされます。たとえば、

# systemctl stop "sshd@*.service"

は、すべての[email protected]インスタンスを停止します。ユニットのエイリアス名と、メモリにないユニットは、グロブ展開の対象になりません。

ユニットファイルコマンドの場合、指定されたUNITは、ユニットファイルの(省略形を使用してもよい)名前、またはユニットファイルへの絶対パスである必要があります。

# systemctl enable foo.service

または

# systemctl link /path/to/foo.service

オプション

次のオプションがサポートされます。

-t, --type=

引数は、serviceやsocketなどのユニットタイプのカンマ区切りのリストです。list-units、list-dependencies、show、またはstatusでユニットをリスト表示する場合、指定されたタイプのユニットのみが表示されます。デフォルトでは、すべてのタイプのユニットが表示されます。

特殊なケースとして、引数の1つがhelpの場合、許可されている値のリストが出力され、プログラムは終了します。

--state=

引数は、ユニットのLOAD、SUB、またはACTIVE状態のカンマ区切りのリストです。list-units、list-dependencies、show、またはstatusでユニットをリスト表示する場合、指定された状態のユニットのみが表示されます。--state=failedまたは--failedを使用して、失敗したユニットのみを表示します。

特殊なケースとして、引数の1つがhelpの場合、許可されている値のリストが出力され、プログラムは終了します。

バージョン206で追加されました。

-p, --property=

showコマンドでユニット/ジョブ/マネージャーのプロパティを表示する場合、引数で指定されたプロパティに表示を制限します。引数は、"MainPID"などのプロパティ名のカンマ区切りのリストである必要があります。指定しない場合、既知のすべてのプロパティが表示されます。複数回指定した場合、指定されたすべての名前を持つプロパティが表示されます。プロパティ名のシェル補完が実装されています。


マネージャー自体の場合、systemctl show は利用可能なすべてのプロパティを表示し、そのほとんどは systemd-system.conf(5) に記載されているオプションから派生するか、それに密接に関連しています。

ユニットのプロパティはユニットタイプによって異なるため、任意のユニット(存在しないユニットを含む)を表示することで、そのタイプに関連するプロパティを一覧表示できます。同様に、任意のジョブを表示すると、すべてのジョブに関連するプロパティが一覧表示されます。ユニットのプロパティは systemd.unit(5) に、個々のユニットタイプ(systemd.service(5)systemd.socket(5) など)についてはそれぞれのページにドキュメントがあります。

-P

^ -value --property= と同じで、プロパティ名または = を含めずに、プロパティの値のみを表示します。-P を一度使用すると、-p/--property= で一覧表示されるすべてのプロパティにも影響します。

バージョン 246 で追加されました。

-a, --all

^ ist-units でユニットを一覧表示する場合、非アクティブなユニットと他のユニットに依存しているユニットも表示します。ユニット/ジョブ/マネージャーのプロパティを表示する場合、設定されているかどうかにかかわらず、すべてのプロパティを表示します。

ファイルシステムにインストールされているすべてのユニットを一覧表示するには、代わりに list-unit-files コマンドを使用します。

^ ist-dependencies でユニットを一覧表示する場合、すべての依存ユニットの依存関係を再帰的に表示します(デフォルトでは、ターゲットユニットの依存関係のみが表示されます)。

^ tatus と組み合わせて使用​​すると、印刷できない文字や非常に長いメッセージを含む場合でも、ジャーナルメッセージを完全に表示します。デフォルトでは、印刷できない文字を含むフィールドは「blob データ」として省略されます。(ただし、ページャーは印刷できない文字を再度エスケープする場合があります)。

-r, --recursive

ユニットを一覧表示するときに、ローカルコンテナーのユニットも表示します。ローカルコンテナーのユニットは、コロン(:)で区切られたコンテナー名でプレフィックスが付けられます。

バージョン 212 で追加されました。

--reverse

^ ist-dependencies でユニット間の逆依存関係を表示します。つまり、Wants= やその他の依存関係ではなく、WantedBy=RequiredBy=UpheldBy=PartOf=BoundBy= の依存関係を追跡します。

バージョン 203 で追加されました。

--after

^ ist-dependencies で、指定されたユニットの前に順序付けられたユニットを表示します。言い換えれば、After= 依存関係に従うユニットを再帰的に一覧表示します。

^ fter= 依存関係は自動的にミラーリングされ、Before= 依存関係が作成されます。時間依存関係は明示的に指定できますが、systemd.target(5)WantedBy= ターゲットや、他のディレクティブ(例:RequiresMountsFor=)の結果としても作成されます。明示的および暗黙的に導入された依存関係は、list-dependencies で表示されます。

^ ist-jobs コマンドに渡される場合、表示された各ジョブについて、そのジョブを待っている他のジョブを表示します。--before と組み合わせて、各ジョブを待っているジョブと、各ジョブが待っているすべてのジョブの両方を表示できます。

バージョン 203 で追加されました。

--before

^ ist-dependencies で、指定されたユニットの後に順序付けられたユニットを表示します。言い換えれば、Before= 依存関係に従うユニットを再帰的に一覧表示します。


^ ist-jobs コマンドに渡すと、表示される各ジョブについて、どのジョブを待機しているかを表示します。--after と組み合わせて使用すると、各ジョブが待機しているジョブと、各ジョブが待機しているすべてのジョブの両方を表示できます。

バージョン 212 で追加されました。

^ -with-dependencies ^ tatuscatlist-units、および list-unit-files コマンドで使用すると、指定されたすべてのユニットとその依存関係を出力します。

^ -reverse--after--before オプションを使用して、表示する依存関係の種類を変更できます。

バージョン 245 で追加されました。

^ l, --full ^ tatuslist-unitslist-jobs、および list-timers の出力で、ユニット名、プロセスツリーエントリ、ジャーナル出力、またはユニットの説明を省略しないようにします。

また、is-enabled の出力でインストールターゲットも表示します。

^ -value ^ how でプロパティを出力するときに、プロパティ名と = をスキップして、値のみを出力します。上記の -P オプションも参照してください。

バージョン 230 で追加されました。

^ -show-types ソケットを表示するときに、ソケットのタイプを表示します。

バージョン 202 で追加されました。

^ -job-mode= 新しいジョブをキューに入れるときに、このオプションは、すでにキューに入れられているジョブをどのように処理するかを制御します。"fail""lenient""replace""replace-irreversibly""isolate""ignore-dependencies""ignore-requirements""flush""triggering"、または "restart-dependencies" のいずれかを指定します。デフォルトは "replace" ですが、isolate コマンドを使用する場合は、"isolate" ジョブモードが暗示されます。

^ fail" が指定され、弱い依存関係に対する要求された操作が保留中のジョブと競合する場合 (具体的には、すでに保留中の開始ジョブが停止ジョブに逆転または逆転する場合)、操作を失敗させます。

^ lenient" が指定され、要求された操作がアクティブ/アクティブ化されているユニットと競合する場合、操作を失敗させます。

^ replace" (デフォルト) が指定された場合、競合する保留中のジョブは必要に応じて置き換えられます。

^ replace-irreversibly" が指定された場合、"replace" と同様に動作しますが、新しいジョブは不可逆としてマークされます。これにより、将来の競合するトランザクションがこれらのジョブを置き換えること (または、不可逆ジョブがまだ保留中の間にキューに入れられること) を防ぎます。不可逆ジョブは、cancel コマンドを使用してキャンセルできます。このジョブモードは、シャットダウンターゲットをプルインするトランザクションで使用する必要があります。

^ isolate" は開始操作に対してのみ有効であり、指定されたユニットが開始されるときに、他のすべてのユニットが停止されます。このモードは、isolate コマンドが使用される場合に常に使用されます。

^ flush" は、新しいジョブがキューに入れられるときに、キューに入れられているすべてのジョブがキャンセルされるようにします。

^ ignore-dependencies" が指定された場合、新しいジョブのすべてのユニット依存関係が無視され、操作は直ちに実行されます。指定された場合、指定されたユニットの必要なユニットはプルインされず、順序依存関係は尊重されません。これは主に管理者のためのデバッグおよびリカバリーツールであり、アプリケーションで使用するべきではありません。

^ ignore-requirements""ignore-dependencies" と似ていますが、順序依存関係は尊重されたまま、要件依存関係のみが無視されます。


「triggering」は、systemctl stopでのみ使用できます。このモードでは、指定されたユニットとそれをトリガーするすべてのアクティブなユニットが停止されます。トリガーユニットに関する詳細については、systemd.unit(5)のTriggers=に関する説明を参照してください。

「restart-dependencies」は、systemctl startでのみ使用できます。このモードでは、指定されたユニットの依存関係に対して、ユニットの再起動ジョブがキューに入れられたかのように再起動の伝播が行われます。

バージョン209で追加されました。

-T、--show-transaction

ユニットジョブをキューに入れるとき(たとえば、systemctl startの呼び出しまたは同様の場合)、要求されたジョブとユニットの依存関係によって追加されたジョブの両方を網羅する、キューに入れられたすべてのジョブに関する簡単な情報を表示します。ただし、出力には、要求されたトランザクションの直接的な部分であるジョブのみが含まれます。サービス起動プログラムコードがキューに入れられたジョブの結果として実行されると、さらにジョブが要求される可能性があります。つまり、リストされているジョブの完了は、最終的にリストされているジョブよりも多くのジョブにつながる可能性があります。

バージョン242で追加されました。

--fail

--job-mode=failの省略形です。

killコマンドで使用する場合、ユニットが停止されなかった場合、操作はエラーになります。

バージョン227で追加されました。

--check-inhibitors=

システムシャットダウンまたはスリープ状態が要求された場合、このオプションはインヒビターロックのチェックを制御します。「auto」、「yes」、および「no」のいずれかの値を指定できます。デフォルトは「auto」であり、この場合、logindはチェックを実行し、アクティブなインヒビターロックを尊重しますが、systemctlはインタラクティブな呼び出し(つまり、TTYから)に対してクライアント側のチェックのみを実行するため、よりフレンドリーで有益なエラーをユーザーに返すことができます。「no」は、systemctlとsystemd-logind(8)の両方でのチェックを無効にします。

アプリケーションはインヒビターロックを確立して、重要な操作(CDの書き込みなど)がシステムシャットダウンまたはスリープ状態によって中断されないようにすることができます。すべてのユーザーがこれらのロックを取得でき、特権ユーザーはこれらのロックをオーバーライドできます。ロックが取得されている場合、通常、シャットダウンおよびスリープ状態の要求は失敗します(ただし、明示的に「no」でオーバーライドできます)。

--forceオプションは、インヒビターをオーバーライドする別の方法を提供します。

バージョン248で追加されました。

-i

--check-inhibitors=noの省略形です。

バージョン198で追加されました。

--dry-run

実行される内容のみを出力します。現在、halt、poweroff、reboot、kexec、suspend、hibernate、hybrid-sleep、suspend-then-hibernate、default、rescue、emergency、およびexitの動詞でサポートされています。

バージョン236で追加されました。

-q、--quiet

さまざまなコマンドの結果の印刷と、切り捨てられたログ行に関するヒントの印刷を抑制します。ただし、印刷された出力のみが唯一の結果であるコマンド(showなど)の出力は抑制されません。エラーは常に印刷されます。

-v、--verbose

ユニット操作を実行するときに、ユニットのログ出力を表示します。

バージョン258で追加されました。

--no-warn

次のいずれかの状況でデフォルトで表示される警告を生成しないようにします。


systemctl が /proc/ に procfs がマウントされていない状態で呼び出された場合、

[Install] セクションがない(または空の)ユニットに対して enable または disable を使用する場合、

グローバルスコープで有効になっているユニットに対して、disable と --user を組み合わせて使用する場合、

停止済み、無効化済み、またはマスクされたユニットに、まだアクティブなトリガーユニットが存在する場合、

ユニットファイルが変更され、daemon-reload が必要な場合。

バージョン 253 で追加。

--no-block
要求された操作が完了するまで同期的に待機しない。指定しない場合、ジョブは検証され、キューに入れられ、systemctl はユニットの起動が完了するまで待機します。この引数を渡すと、検証とキューへの投入のみが行われます。このオプションは、--wait と組み合わせて使用することはできません。

--wait
start または restart と組み合わせて使用する場合、起動されたユニットが再び終了するまで同期的に待機します。このオプションは、--no-block と組み合わせて使用することはできません。ただし、指定されたユニットが自身で終了するか、明示的に停止されるまで、永久に待機する可能性があります。特に、"RemainAfterExit=yes" を使用するサービスです。

is-system-running と組み合わせて使用する場合、ブートプロセスが完了するまで待機してから戻ります。

kill と組み合わせて使用する場合、指定されたユニットが終了するまで待機します。ただし、指定されたユニットが終了しない場合、永久に待機する可能性があります。

バージョン 232 で追加。

--user
システムではなく、呼び出し元のユーザーのサービスマネージャーに接続します。

--system
システムのサービスマネージャーに接続します。これはデフォルトの動作です。

--failed
失敗状態のユニットをリストします。これは、--state=failed と同じです。

バージョン 233 で追加。

--no-wall
halt、power-off、および reboot の前に wall メッセージを送信しません。

--global
enable および disable と組み合わせて使用すると、グローバルユーザー構成ディレクトリに対して操作が行われ、すべてのユーザーの今後のログインに対してユニットファイルをグローバルに有効または無効にします。

--no-reload
enable、disable、preset、mask、または unmask と組み合わせて使用する場合、変更の実行後にデーモン構成を暗黙的に再読み込みしません。

--kill-whom=
kill と組み合わせて使用する場合、どの UNIX プロセスに信号を送信するかを選択します。main、control、cgroup、または all のいずれかを指定して、それぞれメインプロセス、制御プロセス、ユニットの制御グループ内のすべてのプロセス、またはユニットのすべてのプロセスを終了するかどうかを選択します。ユニットのメインプロセスは、そのライフサイクルを定義するプロセスです。ユニットの制御プロセスは、状態変更を誘導するためにマネージャーによって呼び出されるプロセスです。たとえば、service ユニットの ExecStartPre=、ExecStop=、または ExecReload= 設定によって開始されたすべてのプロセスは、制御プロセスです。制御プロセスは一度に 1 つしか存在しないため、一度に 1 つの状態変更のみが実行されます。Type=forking のサービスユニットの場合、マネージャーが ExecStart= で開始した最初のプロセスは制御プロセスであり、その後、そのプロセスによって最終的にフォークされたプロセスがユニットのメインプロセスと見なされます(特定できる場合)。これは、マネージャーが ExecStart= でフォークしたプロセスが常にメインプロセス自体である他のタイプのサービスユニットとは異なります。サービスユニットは、ゼロまたは 1 つのメインプロセス、ゼロまたは 1 つの制御プロセス、およびユニットの制御グループの一部である任意の数の追加プロセスで構成されます。ただし、すべてのユニットタイプでこれらのタイプのプロセスが管理されるわけではありません。たとえば、mount ユニットの場合、制御プロセスは定義されます(/usr/bin/mount および /usr/bin/umount の呼び出し)、ただしメインプロセスは定義されません。省略した場合、デフォルトは all になり、--kill-subgroup= が使用されている場合は cgroup になります。

バージョン 252 で追加されました。

--kill-value=INT

^ ill コマンドで使用する場合、指定された整数値パラメーターとともにシグナルをエンキューします。この操作は、POSIX リアルタイムシグナル(つまり、--signal=SIGRTMIN+... または --signal=SIGRTMAX-…)に対してのみ利用可能であり、シグナルが kill(3) ではなく sigqueue(3) システムコールを介して生成されるようにします。指定された値は 32 ビット符号付き整数でなければならず、10 進数、16 進数("0x" プレフィックス付き)、8 進数("0o" プレフィックス付き)、または 2 進数("0b" プレフィックス付き)で指定できます。

このオプションを使用すると、シグナルはユニットの制御プロセスまたはメインプロセスにのみエンキューされ、ユニットに属する他のプロセスにはエンキューされません。つまり、--kill-whom=all を使用しても、メインプロセスと制御プロセスにのみ影響し、他のプロセスには影響しません。

バージョン 254 で追加されました。

--kill-subgroup=PATH

^ ill コマンドで使用するために、制御グループのサブパスを指定し、そこにシグナルを送信します。デフォルトでは、選択したシグナルはユニットの cgroup のすべてのプロセス(および外部にあるメイン/制御プロセス)に配信されます(--kill-whom= の設定による)。ただし、このオプションを使用すると、代わりにサブグループを選択できます。この機能は、--kill-whom= で "cgroup" または "cgroup-fail" を使用する場合にのみ利用できます。実際には、--kill-subgroup= が使用されている場合、デフォルトは前者になります。

指定されたパスは、スラッシュで始まる場合とそうでない場合がありますが、どちらの場合でもユニットのメイン制御グループパスを基準とした相対パスとして扱われます。

この機能は、制御グループの委任が有効になっているユニットでのみ利用できます(Delegate= を参照、systemd.resource-control(5))。

バージョン 258 で追加されました。

-s, --signal=

^ ill コマンドで使用する場合、選択したプロセスに送信するシグナルを選択します。SIGTERMSIGINT、または SIGSTOP などの既知のシグナル指定子のいずれかでなければなりません。省略した場合、デフォルトは SIGTERM です。

特別な値 "help" を指定すると、既知の値がリストされ、プログラムは直ちに終了します。また、特別な値 "list" を指定すると、既知の値が数値シグナル番号とともにリストされ、プログラムは直ちに終了します。

--what=

^ lean コマンドが呼び出されたときに削除する、ユニットごとのリソースの種類を選択します。configurationstatecachelogsruntimefdstore のいずれかを指定して、リソースの種類を選択します。このオプションを複数回指定すると、指定されたすべてのリソースタイプが削除されます。また、特別な値 "all" を指定すると、6 種類のすべてのリソースタイプを指定するショートカットになります。このオプションが指定されていない場合、デフォルトは cacheruntime、および fdstore の組み合わせになります。これは、一般的に冗長と見なされ、次回の呼び出し時に再構築できる 3 種類のものです。ただし、FileDescriptorStorePreserve= オプションが有効になっている場合にのみ、ファイル記述子ストアリソースタイプの明示的な削除が役立つことに注意してください。ファイル記述子ストアは、ユニットが停止した場合、それ以外の場合は自動的にクリーンアップされるためです。


バージョン 243 で追加。

-f, --force

enable と組み合わせて使用すると、既存の競合するシンボリックリンクを上書きします。

edit と組み合わせて使用すると、指定されたユニットファイルが存在しない場合に、それらを作成します。

suspend、hibernate、hybrid-sleep、または suspend-then-hibernate と組み合わせて使用すると、systemd-logind から返されるエラーが無視され、操作が対応するユニットの開始を通じて直接実行されます。

halt、poweroff、reboot、または kexec と組み合わせて使用すると、選択された操作が、すべてのユニットをシャットダウンすることなく実行されます。ただし、すべてのプロセスは強制的に終了され、すべてのファイルシステムはアンマウントされるか、読み取り専用で再マウントされます。これは、即時の再起動を要求するための、急激ですが比較的安全なオプションです。これらの操作に対して --force を 2 回指定した場合(kexec を除く)、それらは直ちに実行され、プロセスは終了されず、ファイルシステムもアンマウントされません。

警告 これらの操作のいずれかで --force を 2 回指定すると、データが失われる可能性があります。--force が 2 回指定されると、選択された操作が systemctl 自体によって実行され、システムマネージャーに連絡しないことに注意してください。これは、システムマネージャーがクラッシュした場合でも、コマンドが成功することを意味します。

--message=

halt、poweroff、または reboot と組み合わせて使用すると、操作の理由を説明する短いメッセージを設定します。このメッセージは、デフォルトのシャットダウンメッセージとともにログに記録されます。

バージョン 225 で追加。

--now

enable、disable、mask、または reenable と組み合わせて使用すると、指定されたユニットファイル操作が成功した後、ユニットを起動/停止/再起動します。

バージョン 220 で追加。

--root=

enable/disable/is-enabled(および関連するコマンド)と組み合わせて使用すると、ユニットファイルを検索する際に、指定されたルートパスを使用します。このオプションが存在する場合、systemctl はファイルシステムに直接操作し、システムマネージャーに連絡して変更を実行しません。

--image=image

ディスクイメージファイルまたはブロックデバイスノードへのパスを指定します。指定された場合、すべての操作は、指定されたディスクイメージ内のファイルシステムに適用されます。このオプションは --root= と似ていますが、ディスクイメージまたはブロックデバイスに格納されたファイルシステムで動作します。ディスクイメージには、ファイルシステムのみが含まれているか、UAPI.2 Discoverable Partitions Specification[2] に従って GPT パーティションテーブル内のファイルシステムのセットが含まれている必要があります。サポートされているディスクイメージの詳細については、systemd-nspawn(1) の同じ名前のスイッチを参照してください。

--image-policy=ポリシー

systemd.image-policy(7) に従って、イメージポリシー文字列を引数として受け取ります。ポリシーは、--image= で指定されたディスクイメージに対して適用されます。指定しない場合、デフォルトは "*" ポリシーとなり、イメージ内のすべての認識されたファイルシステムが使用されます。

--runtime

enable、disable、edit(および関連するコマンド)で使用すると、変更を一時的に行い、次の再起動で変更が失われるようにします。これにより、/etc/ のサブディレクトリではなく、/run/ に変更が行われ、直ちに同じ効果が得られますが、後者は再起動時に失われるため、変更も失われます。

同様に、set-property コマンドで使用すると、変更を一時的に行い、次の再起動で変更が失われるようにします。

--preset-mode=

"full" (デフォルト)、"enable-only"、"disable-only" のいずれかを受け取ります。preset または preset-all コマンドで使用すると、ユニットがプリセットルールに従って無効化および有効化されるか、または有効化のみ、または無効化のみが行われるかを制御します。

バージョン 215 で追加されました。

-n, --lines=

status コマンドで使用すると、表示するジャーナルの行数を制御します。最も新しいものからカウントします。正の整数、または 0 を指定すると、ジャーナルの出力を無効にします。デフォルトは、

-o, --output=

status コマンドで使用すると、表示するジャーナルエントリの書式を制御します。利用可能なオプションについては、journalctl(1) を参照してください。デフォルトは "short" です。

--firmware-setup

reboot、poweroff、または halt コマンドで使用すると、システムのファームウェアに、次の起動時にファームウェア設定インターフェイスに再起動するように指示します。ただし、この機能はすべてのシステムで利用できるわけではありません。

バージョン 220 で追加されました。

--boot-loader-menu=タイムアウト

reboot、poweroff、または halt コマンドで使用すると、次の起動時にシステムのブートローダーにブートローダーメニューを表示するように指示します。パラメータとして時間値を指定し、メニューのタイムアウトを示します。メニューのタイムアウトを無効にするには、0 を渡します。ただし、すべてのブートローダーがこの機能をサポートしているわけではありません。

バージョン 242 で追加されました。

--boot-loader-entry=ID

reboot、poweroff、または halt コマンドで使用すると、システムのブートローダーに、次の起動時に特定のブートローダーエントリを起動するように指示します。ブートローダーエントリ識別子を引数として指定するか、"help" を指定すると、利用可能なエントリがリストされます。ただし、すべてのブートローダーがこの機能をサポートしているわけではありません。

バージョン 242 で追加されました。

--reboot-argument=

このスイッチは、reboot コマンドで使用されます。値は、アーキテクチャおよびファームウェアによって異なります。たとえば、"recovery" はシステム回復をトリガーするために使用され、"fota" は「ファームウェアの空中アップデート」をトリガーするために使用される場合があります。

バージョン 246 で追加されました。

--plain

list-dependencies、list-units、または list-machines コマンドで使用すると、出力はツリーの代わりにリストとして印刷され、箇条書きの円は省略されます。

バージョン 203 で追加されました。

--timestamp=

印刷されるタイムスタンプの形式を変更します。次の値を使用できます。


pretty (デフォルト)
"Day YYYY-MM-DD HH:MM:SS TZ"

バージョン 248 で追加されました。

unix
"@エポックからの秒数"

バージョン 251 で追加されました。

us, μs
"Day YYYY-MM-DD HH:MM:SS.UUUUUU TZ"

バージョン 248 で追加されました。

utc
"Day YYYY-MM-DD HH:MM:SS UTC"

バージョン 248 で追加されました。

us+utc, μs+utc
"Day YYYY-MM-DD HH:MM:SS.UUUUUU UTC"

バージョン 248 で追加されました。

バージョン 247 で追加されました。

--mkdir

bind と併用すると、bind マウントを適用する前に、宛先ファイルまたはディレクトリを作成します。このオプションの名前が示すように、ディレクトリにのみ適しているように思えますが、このオプションは、マウントするオブジェクトがディレクトリではなく、通常ファイル、デバイスノード、ソケット、または FIFO の場合でも、宛先のファイルノードを作成してマウントします。

バージョン 248 で追加されました。

--marked

reload-or-restart と併用する場合にのみ許可されます。"needs-restart" マークを持つすべてのユニットについて再起動ジョブを、"needs-reload" マークを持つユニットについてリロードジョブをキューに入れます。リロード用のマークが付けられたユニットがリロードをサポートしていない場合、再起動ジョブがキューに入れられます。これらのプロパティは、set-property Markers=... を使用して設定できます。

--no-block が使用されていない場合、systemctl はキューに入れられたジョブが完了するまで待ちます。

バージョン 248 で追加されました。

--read-only

bind と併用すると、読み取り専用の bind マウントが作成されます。

バージョン 248 で追加されました。

--drop-in=NAME

edit と併用すると、override.conf ではなく NAME をドロップインファイル名として使用します。

バージョン 253 で追加されました。

--when=

halt、poweroff、reboot、または kexec と併用すると、systemd.time(7) のセクション "PARSING TIMESTAMPS" に記載されている構文に従って、指定されたタイムスタンプで実行されるようにアクションをスケジュールします。特に、"show" が指定された場合、現在スケジュールされているアクションが表示され、空の文字列または "cancel" を渡すことでキャンセルできます。"auto" は、メンテナンスウィンドウに従って、または 1 分後にアクションをスケジュールします。

バージョン 254 で追加されました。

--stdin

edit と併用すると、ファイルの内容が標準入力から読み込まれ、エディターは起動されません。このモードでは、ファイルに古い内容が完全に書き換えられます。これは、スクリプトからユニットファイルを「編集」する場合に役立ちます。

$ systemctl edit --drop-in=limits.conf --stdin some-service.service <<EOF
[Unit]
AllowedCPUs=7,11
EOF

複数のドロップインをこのモードで「編集」できます。同じ内容がすべてに書き込まれます。

バージョン 256 で追加されました。

-H, --host=

リモートで操作を実行します。hostname、または "@" で区切られたユーザー名と hostname を指定して、接続します。hostname の後には、オプションで、SSH がリッスンしているポートを追加できます (" : ")。また、hostname の後には、"/" で区切られたコンテナー名を追加して、指定されたホスト上の特定のコンテナーに直接接続することもできます。これにより、SSH を使用してリモートのマシンマネージャーインスタンスと通信します。コンテナー名は、machinectl -H HOST で列挙できます。IPv6 アドレスは括弧で囲みます。

-M, --machine=

ローカルコンテナーで操作を実行します。コンテナー名を指定して接続します。オプションで、ユーザー名をプレフィックスとして追加し、"@" で区切ることができます。コンテナー名の代わりに特別な文字列 ".host" を使用すると、ローカルシステムへの接続が確立されます (これは、特定のユーザーのユーザーバスに接続する場合に役立ちます: "--user [email protected]")。 "@" 構文が使用されていない場合、接続は root ユーザーとして行われます。"@" 構文が使用されている場合は、左側または右側のいずれか一方のみを省略できます (ただし、両方を省略することはできません)。この場合、ローカルユーザー名と ".host" が暗示されます。


-C, --capsule=
カプセルに対して操作を実行します。接続するカプセルの名前を指定します。詳細については、[email protected](5) を参照してください。

バージョン 256 で追加されました。

--no-ask-password
特権操作に対して、ユーザーに認証を要求しません。

--no-pager
出力をページャにパイプしないでください。

--legend=BOOL
凡例(列ヘッダーとヒントを含むフッター)の印刷を有効または無効にします。凡例はデフォルトで印刷されますが、--quiet またはそれに類似のオプションで無効にすることができます。

-h, --help
短いヘルプテキストを表示して終了します。

--version
短いバージョン文字列を表示して終了します。

終了ステータス

成功した場合は 0 を返し、それ以外の場合は 0 以外のエラーコードを返します。

systemctl は LSB で定義されているリターンコードを使用します。LSB 3.0.0[3] に定義されています。

表 5. LSB リターンコード

┌───────┬────────────────────────────┬──────────────────────────┐
│ Value │ LSB での説明                   │ systemd での使用             │
├───────┼────────────────────────────┼──────────────────────────┤
│ 0     │ 「プログラムが実行中または     │ ユニットがアクティブ          │
│       │ サービスが正常」               │                              │
├───────┼────────────────────────────┼──────────────────────────┤
│ 1     │ 「プログラムが終了し、/var/run │ ユニットは失敗していません (is-failed で使用) │
│       │ pid ファイルが存在する」         │                              │
├───────┼────────────────────────────┼──────────────────────────┤
│ 2     │ 「プログラムが終了し、/var/lock │ 使用されません                 │
│       │ ロックファイルが存在する」       │                              │
├───────┼────────────────────────────┼──────────────────────────┤
│ 3     │ 「プログラムが実行されていない」   │ ユニットはアクティブではありません     │
├───────┼────────────────────────────┼──────────────────────────┤
│ 4     │ 「プログラムまたはサービスのステ │ 該当するユニットがありません     │
│       │ ータスが不明」                 │                              │
└───────┴────────────────────────────┴──────────────────────────┘

LSB サービス状態と systemd ユニット状態のマッピングは完全ではないため、これらの戻り値に依存するのではなく、特定のユニット状態とサブ状態を調べる方が良いでしょう。

環境変数

$SYSTEMD_EDITOR

ユニットを編集するときに使用するエディター。$EDITOR と $VISUAL をオーバーライドします。$SYSTEMD_EDITOR、または $EDITOR、または $VISUAL が存在しないか、空の文字列に設定されているか、これらの実行に失敗した場合、systemctl は、次の順序で既知のエディターを実行しようとします。editor(1)、nano(1)、vim(1)、vi(1)。

バージョン 218 で追加されました。

$SYSTEMD_LOG_LEVEL

出力されるメッセージの最大ログレベル(より重要度の低いメッセージは抑制されます)。カンマ区切りの値のリストを指定します。値は、(重要度の高い順に) emerg、alert、crit、err、warning、notice、info、debug のいずれか、または 0~7 の範囲の整数になります。詳細は syslog(3) を参照してください。各値は、console、syslog、kmsg、または journal のいずれかで始まり、その後にコロンを付けて、特定のログターゲットの最大ログレベルを設定できます(例:SYSTEMD_LOG_LEVEL=debug,console:info は、debug レベルでログを記録しますが、コンソールへのログ記録の場合は info レベルでログを記録します)。グローバルな最大ログレベルは、ターゲットごとの最大ログレベルよりも優先されます。

$SYSTEMD_LOG_COLOR

真偽値。true の場合、tty に書き込まれたメッセージは、優先度に応じて色付けされます。

この設定は、メッセージが直接ターミナルに書き込まれる場合にのみ役立ちます。なぜなら、journalctl(1) などのログを表示するツールは、ログレベルに基づいてメッセージに色を付けます。

$SYSTEMD_LOG_TIME

真偽値。true の場合、コンソールログメッセージの先頭にタイムスタンプが付加されます。

この設定は、メッセージが直接ターミナルまたはファイルに書き込まれる場合にのみ役立ちます。なぜなら、journalctl(1) などのログを表示するツールは、エントリのメタデータに基づいてタイムスタンプを付加します。

$SYSTEMD_LOG_LOCATION

真偽値。true の場合、メッセージは、メッセージが生成されたソースコード内のファイル名と行番号で接頭辞が付けられます。

ログの場所は、通常、ジャーナルエントリのメタデータとして添付されます。それでも、メッセージテキストに直接含めることは、プログラムをデバッグする際に便利です。

$SYSTEMD_LOG_TARGET

ログメッセージの送信先。console(接続された tty にログを記録)、console-prefixed(接続された tty にログを記録しますが、ログレベルと「ファシリティ」をエンコードする接頭辞が付いています。syslog(3) を参照してください)、kmsg(カーネルの循環ログバッファにログを記録)、journal(ジャーナルにログを記録)、journal-or-kmsg(利用可能な場合はジャーナルにログを記録し、それ以外の場合は kmsg にログを記録)、auto(適切なログターゲットを自動的に決定します。デフォルト)、null(ログ出力を無効にします)。


$SYSTEMD_PAGER、$PAGER
--no-pager が指定されていない場合に使うページャ。$SYSTEMD_PAGER が設定されていればそれを使用し、そうでなければ $PAGER を使用する。どちらも設定されていない場合、[less]({filename}../../less)(1) や more(1) など、既知のページャ実装を順番に試行し、いずれかが見つかるまで試す。ページャ実装が見つからない場合は、ページャは起動されない。これらの環境変数を空文字列または "cat" に設定すると、--no-pager を渡したのと同じになる。

注意:$SYSTEMD_PAGERSECURE が設定されていない場合、$SYSTEMD_PAGER と $PAGER はページャを無効にするためにのみ使用でき ("cat" または "")、それ以外の場合は無視される。

$SYSTEMD_LESS
less に渡されるオプションを上書きする(デフォルトは "FRSXMK")。

ユーザーが変更したいオプションは主に次の 2 つである。

K
このオプションは、Ctrl+C が押されたときにページャが直ちに終了するように指示する。less に Ctrl+C を処理させて、ページャコマンドプロンプトに戻るようにするには、このオプションを無効にする。

$SYSTEMD_LESS に "K" が含まれておらず、起動されるページャが less の場合、Ctrl+C は実行ファイルによって無視され、ページャによって処理する必要がある。

X
このオプションは、ページャが端末に termcap 初期化および終了文字列を送信しないように指示する。デフォルトでは設定されており、ページャが終了した後でも、コマンドの出力が端末に表示されるようにする。ただし、これにより、一部のページャ機能が機能しなくなる。特に、ページャの出力はマウスでスクロールできなくなる。

通常の $LESS 環境変数を設定しても、systemd ツールによる less の起動には影響しないことに注意。

詳細は [less]({filename}../../less)(1) を参照。

$SYSTEMD_LESSCHARSET
less に渡される文字セットを上書きする(デフォルトは、起動元の端末が UTF-8 互換であると判断された場合に "utf-8")。

通常の $LESSCHARSET 環境変数を設定しても、systemd ツールによる less の起動には影響しないことに注意。

$SYSTEMD_PAGERSECURE
[less]({filename}../../less)(1) などの一般的なページャは、スクロールなどの「ページング」に加えて、他のファイルを開いたり、任意のシェルコマンドを実行したりできる。コマンドが昇格された権限で実行される場合(たとえば、[sudo]({filename}../../sudo)(8) または pkexec(1) の下など)、ページャはセキュリティ境界になる。権限のないプログラムのみをページャとして使用し、ファイルを開いたり作成したり、サブプロセスを開始したりするなど、意図しないインタラクティブな機能は許可しないように注意する必要がある。ページャがサポートしている場合は、以下に示すように、「セキュアモード」を有効にすることができる。ほとんどのページャは、これを考慮して作成されていない。昇格された権限でコマンドを実行する権限のないユーザーに許可する場合は、--no-pager または PAGER=cat を使用して、ページャを明示的に有効にするか、完全に無効にすることをお勧めする。

このオプションは、ブール型の引数を受け取ります。trueに設定すると、ページャの「セキュアモード」が有効になります。 「セキュアモード」では、ページャを起動する際にLESSSECURE=1が設定され、これにより、ページャは新しいファイルを開いたり作成したり、または新しいサブプロセスを開始するコマンドを無効にするように指示されます。 現在、less(1)のみがこの変数を理解し、「セキュアモード」を実装することが知られています。

falseに設定すると、ページャに制限は加えられません。SYSTEMD_PAGERSECURE=0を設定するか、環境変数から削除しないと、ユーザーが任意のコマンドを実行できるようになる可能性があります。

SYSTEMD_PAGERSECUREが設定されていない場合、systemdツールは「セキュアモード」を有効にするべきかどうか、およびページャがそれをサポートしているかどうかを自動的に判断しようとします。「セキュアモード」は、実効UIDがログインセッションの所有者と異なる場合(geteuid(2)およびsd_pid_get_owner_uid(3)を参照)、またはsudo(8)や類似のツール($SUDO_UIDが設定されている[4])の下で実行されている場合に有効になります。これらの場合、SYSTEMD_PAGERSECURE=1が設定され、かつ「セキュアモード」を実装していないことがわかっているページャは、一切使用されません。この自動検出は、最も一般的な権限昇格メカニズムを対象としており、利便性のためのものです。SYSTEMD_PAGERSECUREを明示的に設定するか、ページャを無効にすることを推奨します。

$SYSTEMD_PAGERまたは$PAGER変数を尊重し、ページャを無効にすること以外に何もしない場合、SYSTEMD_PAGERSECUREも設定する必要があります。

$SYSTEMD_COLORS

ブール型の引数を受け取ります。trueの場合、systemdおよび関連ユーティリティは、出力に色を使用します。それ以外の場合は、出力はモノクロになります。さらに、この変数は、次の特殊な値のいずれかをとることができます。「16」、「256」は、それぞれ、色の使用をベースとなる16色または256色のANSIカラーに制限します。これは、$TERMとコンソールが接続されているものに基づいてsystemdが行う自動的な決定を上書きするために指定できます。

$SYSTEMD_URLIFY

値はブール型である必要があります。ターミナルエミュレーターでサポートされている場合に、出力にクリック可能なリンクを生成するかどうかを制御します。これは、$TERMおよびその他の条件に基づいてsystemdが行う決定を上書きするために指定できます。

関連項目

systemd(1)、journalctl(1)、loginctl(1)、machinectl(1)、systemd.unit(5)、systemd.resourcecontrol(5)、systemd.special(7)、wall(1)、systemd.preset(5)、systemd.generator(7)、glob(7)

備考

UAPI.1 ブートローダー仕様
https://uapi-group.org/specifications/specs/boot_loader_specification

UAPI.2 発見可能なパーティション仕様
https://uapi-group.org/specifications/specs/discoverable_partitions_specification

LSB 3.0.0
http://refspecs.linuxbase.org/LSB_3.0.0/LSB-PDA/LSB-PDA/iniscrptact.html

他のツールも、$SUDO_UIDを適切に設定およびチェックすることを推奨し、それを共通のインターフェースとして扱います。