"chkconfig --level 5 iptables on"のようなコマンドに対応するsystemctlは何ですか?

"chkconfig --level 5 iptables on"のようなコマンドに対応するsystemctlは何ですか?

私はsystemctl enable iptablesそれがcommandに似ていることを知っていますが、chkconfig --level 5 iptables on両方がまったく同じではありません。

を使用してsystemctl特定のターゲット(graphic.targetなど)でのみサービスを開始するように制限する方法は?

答え1

単位ファイルのWantedBy=ANDRequiredBy=ディレクティブの用途は次のとおりです。systemd

~からman systemd.unit:

求める=、必須=

このオプションは、複数回使用することも、スペースで区切られた単位名のリストを提供することもできます。このデバイスがsystemctlアクティベーションを介してインストールされると、リストされている各デバイスの.wants/または.requires/ディレクトリにシンボリックリンクが作成されます。これは、リストされているデバイスのWants =またはRequires =タイプの依存関係を現在のデバイスに追加する効果があります。主な結果は、リストされたデバイスが起動すると現在のデバイスが起動することです。詳細については、[Unit]セクションのWants =とRequires =の説明を参照してください。

したがって、生成されたシンボリックリンクは、systemdターゲット/ユニットの起動時に指定されたユニットを開始することです。


たとえば、

[Install]
WantedBy=graphical.target

graphical.targetデバイスが実行時にのみ起動するようにします(デバイスがアクティブな場合)。


他の例:

[Install]
WantedBy=my-custom-target.target graphical.target

my-custom-target.targetまたは、実行中にデバイスを起動させますgraphical.target(デバイスがアクティブな場合)。


最後に心に留めておくべきことは、いくつかの目標は他の目標に依存しているため、単一の目標に限定するのは難しいかもしれません。たとえば、起動するgraphical.target Requires=multi-user.targetと、すべてのデバイスも起動します。一部の目標は他の目標の上に構築され、その上に構築された目標はその目標のすべてを取得します。graphical.targetmulti-user.target

答え2

直接同等のものはありませんchkconfig --level 5 iptables on。古いsysvinitの観点から考え続けるのは無意味で混乱しています。systemdにはランレベルのようなものはありません。

つまり、サービスの[Install]セクションでWantedBy = graphical.targetを使用してGraphical.targetに達した場合にのみ、サービス管理者にiptablesを起動するように要求できます。

関連情報