サービスの有効化と無効化

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)マニュアル・ページを参照してください。