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からすべてのユニットが開始されます も開始されます。一部のターゲットは他のターゲットの上に構築され、上に構築されたターゲットは依存するターゲットからすべてを取得することを覚えておいてください。