systemctl enable iptables
を知っています コマンドchkconfig --level 5 iptables on
に似ています 、ただし、両方が完全に同じではありません。
systemctl
を使用する 、graphical.targetなどの特定のターゲットでのみ開始されるようにサービスを制限するにはどうすればよいですか。
承認された回答:
それがWantedBy=
です およびRequiredBy=
systemd
のディレクティブ ユニットファイルの対象:
man systemd.unit
から :
WantedBy =、RequiredBy =
このオプションは複数回使用することも、スペースで区切られたユニット名のリストを指定することもできます。このユニットがsystemctlenableによってインストールされると、リストされた各ユニットの.wants/または.requires/ディレクトリにシンボリックリンクが作成されます。これには、Wants=またはRequires=タイプの依存関係が、リストされたユニットから現在のユニットに追加されるという効果があります。主な結果は、リストされたユニットが開始されたときに現在のユニットが開始されることです。詳細については、[ユニット]セクションのWants=およびRequires=の説明を参照してください。
したがって、作成されたシンボリックリンクがsystemd
の原因になります ターゲット/ユニットの開始時に特定のユニットを開始します。
たとえば:
[Install]
WantedBy=graphical.target
graphical.target
の場合にのみユニットが起動します 実行されます(ユニットが有効になっている場合)。
別の例:
[Install]
WantedBy=my-custom-target.target graphical.target
my-custom-target.target
のときに、ユニットが起動します またはgraphical.target
実行されます(ユニットが有効になっている場合)。
最後に覚えておくべきことの1つは、一部のターゲットが他のターゲットに依存しているため、単一のターゲットに制限することが難しい場合があることです。例:graphical.target
Requires=multi-user.target
、したがって、graphical.target
multi-user.target
からすべてのユニットが開始されます も開始されます。一部のターゲットは他のターゲットの上に構築され、上に構築されたターゲットは依存するターゲットからすべてを取得することを覚えておいてください。