他のサービスが失敗した場合にのみ()を実行したいが、起動時にその[Unit] OnFailure=foo
サービス()が自動的に起動したくないサービスがあります。foo
1つのオプションが実行されており、systemctl disable foo
別の方法を探しています。
systemctl disable foo
背景:OSイメージを作成していますが、コンピュータを起動してコマンド()を実行してから、イメージを最終宣言する前にシャットダウンしたくありません。
答え1
systemctl enable
/etc/systemd/system/
(システムデーモン用)シンボリックリンクを操作して動作します。サービスを使用すると、そのセクションの行をenable
確認し、そのディレクトリにシンボリックリンクを追加します。WantedBy
[Install]
.wants
systemctl disable
その逆は本当です。
これらのシンボリックリンクを直接削除できます。手動で削除することはを使用するのとまったく同じですsystemctl disable
。
答え2
すべてのサービスはデフォルトで「無効」になっており、「有効」はオプションです。
カスタムサービスの場合、foo.service
ディレクティブなどを介して明示的にインポートされない限り開始されず、OnFailure=
何も「無効」にしてはいけません。
答え3
systemctl start ServiceName.service
とをそれぞれ使用してsystemctl stop Service.Name.service
サービスを開始および停止できます。systemctl enable ...
とは異なり、開始およびsystemctl disable ...
停止コマンドは現在のセッション中のみ持続するため、コンピュータを再起動しても変更は保存されません。
答え4
ブロックとブロック解除のオプションもありますが、これは私以外の経験や知識を持つ人が説明する必要があります。
sudo systemctl マスクマスクサービス sudo systemctlのブロック解除サービスのブロック解除
これが正しいことを願っています。ただし、完成度を高めるために、これらの内容をこの会話に含める必要があります。
マスキングは転送を使用しますが、/dev/null
これはかなり良いです。
私の記憶が正しい場合は、同じセッションでサービスを停止、無効化、およびブロックできます。