Linux ディストリビューションは、古い System V スタイルの起動プロセスから、新しいメカニズムである systemd デーモンとそれに関連する systemctl コマンドライン ツールに移行しています。 systemd/systemctl によって管理されるサービスには、少なくとも、起動プロセスとシャットダウン プロセスを定義する構成ファイル、これらのプロセスが OS によってどのように処理されるかを制御する型定義、およびサービス プロセスを開始または停止するために必要な実行可能ファイルが必要です。
システムを使用するほとんどの新しいディストリビューションでは、systemctl コマンドを使用してプロセスを管理します。 Linux 開発者は service コマンドのサポートも終了しました。 service コマンドを使用してプロセスを終了しようとすると、実際に要求が systemctl コマンドにリダイレクトされることがわかります。
systemctl コマンドの実行中に以下のエラーが発生した場合:
systemctl: command not found
選択したディストリビューションに従って、systemd パッケージをインストールしてみてください。
分布 | コマンド |
---|---|
Debian | apt-get install systemd |
Ubuntu | apt-get install systemd |
Arch Linux | pacman -S systemd |
カリ Linux | apt-get install systemd |
CentOS | yum install systemd |
Fedora | dnf install systemd |
Raspbian | apt-get install systemd |
構成ファイル
- /usr/lib/systemd/system/ :システムの既定のユニット ファイルが含まれています。
- /etc/systemd/system :systemd のデフォルトの動作を変更するためのシステム固有のパラメーターが含まれています。
- /run/systemd/system/ :ユニット ファイルのランタイム構成が含まれます。
systemctl コマンドの例
1. systemctl でサービスの状態を表示する:
# systemctl status sshd.service
ステータス | 説明 |
---|---|
ロード済み | ユニット構成ファイルは正常に処理されました |
アクティブ (実行中) | 1 つ以上のアクティブなプロセスでの実行 |
アクティブ (終了) | 1 回限りの構成が正常に完了しました |
アクティブ (待機中) | 実行してイベントが発生するのを待っています |
非アクティブ | 現在実行されていません |
有効 | 起動時に開始 |
無効 | 起動時に起動しない |
静的 | 直接有効にすることはできませんが、別の有効なユニットによって自動的に開始される可能性があります |
2.起動時にアクティブでロードされているすべての異なるユニットの状態を表示します:
# systemctl
3. アクティブなサービス ユニットのみの状態を表示します。
# systemctl --type=service
または
# systemctl list-units --type=service
4. アクティブか非アクティブかにかかわらず、読み込まれたすべてのサービス ユニットの状態を表示します。
# systemctl --type=service –all
または
# systemctl list-units --type=service --all
5. 失敗したすべてのサービスを表示します:
# systemctl --failed --type=service
6. 特定のサービスが現在アクティブかどうかを表示します:
# systemctl is-active sshd
7. 特定のサービスが起動時に開始できるかどうかを表示します:
# systemctl is-enabled sshd
8. 指定されたタイプのすべてのユニットの有効、無効、または静的設定を表示します。
# systemctl list-unit-files --type=service
9. 指定されたサービスに関する詳細なステータス情報を表示します:
# systemctl status sshd.service -l