サービスの有効化と無効化
systemctlコマンドを使用して、たとえば次のように、システム起動時に最初からサービスを有効または無効にできます。
sudo systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
enable
コマンドは、サービスを開始する最低レベルのシステム状態ターゲットへのシンボリック・リンクを作成することによって、サービスをアクティブ化します。前述の例では、コマンドはmulti-user
ターゲットへのシンボリック・リンクhttpd.service
を作成します。
ノート:
サービスを同時に開始するには、コマンドに--now
オプションを含めます。例: sudo systemctl enable --now httpd
サービスを無効にすると、シンボリック・リンクが削除されます。
sudo systemctl disable httpd
Removed /etc/systemd/system/multi-user.target.wants/httpd.service.
サービスが有効かどうかを確認するには、次の例に示すようにis-enabledサブコマンドを使用します。
sudo systemctl is-enabled httpd
disabled
sudo systemctl is-enabled sshd
enabled
systemctl disableコマンドを実行した後でも、ユーザー・アカウント、スクリプト、およびその他のプロセスによってサービスを開始または停止できます。ただし、たとえば競合するサービスによって、誤ってサービスが開始する可能性があることを確認する必要がある場合は、次のようにsystemctl mask
コマンドを使用します:
sudo systemctl mask httpd
Created symlink from '/etc/systemd/system/multi-user.target.wants/httpd.service' to '/dev/null'
mask
コマンドは、サービス参照を/dev/null
に設定します。マスクされたサービスを開始しようとすると、次の例に示すようにエラーが表示されます。
sudo systemctl start httpd
Failed to start httpd.service: Unit is masked.
サービス参照を一致するサービス・ユニット構成ファイルに再リンクするには、systemctl unmaskコマンドを使用します:
sudo systemctl unmask httpd
詳細は、systemctl(1)
マニュアル・ページを参照してください。