参考文献

参考文献

SysV init スタイルのファイルを Systemd Unit ファイルに変換していますが、その init セクション ブロックは次のようになります。

### BEGIN INIT INFO
# Provides:          ifcheck 
# Required-Start:    $local_fs 
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     S
# Default-Stop:      
# Short-Description: Network interfaces check & replace
# Description:       Checks if the interfaces were corrupted or if the special section is missing. If so, a default version will be copied over.
### END INIT INFO

実行レベル 0 ~ 6 は、さまざまな systemd ターゲットに対応していることがわかっています。

╔══════════════════════╦═══════════════════╗
║ Run Level (SysVinit) ║  Systemd Target   ║
╠══════════════════════╬═══════════════════╣
│ Run level 0          │ poweroff.target   │
├──────────────────────┼───────────────────┤
│ Run level 1          │ rescue.target     │
├──────────────────────┼───────────────────┤
│ Run level 2          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 3          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 4          │ multi-user.target │
├──────────────────────┼───────────────────┤
│ Run level 5          │ graphical.target  │
├──────────────────────┼───────────────────┤
│ Run level 6          │ reboot.target     │
├──────────────────────┼───────────────────┤
│ Emergency            │ emergency.target  │
└──────────────────────┴───────────────────┘
(According to https://www.tecmint.com/change-runlevels-targets-in-systemd/ )

Sしかし、私はこれまでランレベルとして見たことがありません。シングルユーザー向けであるとする定義もあるその間他の実行レベルの同義語として定義するものもありますそしてなお決定的な定義がない人もいる

私が使用しているバージョンは、おそらくLinux 標準ベース仕様なぜなら、init infoブロックの直後に、lsb 初期化関数(出典: . /lib/lsb/init-functions)。また、システムでは Debian 8 Jessie が実行されています。

実行レベルに相当する systemd ユニット ファイルにどのようなターゲットを配置すればよいですかS?

答え1

Ssystemd には直接対応していません。systemd-sysv-generatorプログラムはこのような van Smoorenburg スクリプトを処理しませんrc

デビアン持っていましたそのプログラムのパッチ版は、デフォルトの依存関係のないサービスユニット内でrc使用されるスクリプトをラップし、wanted-by でした。これは不完全でしたが、Ssysinit.target全ての動作は不完全です。なぜなら、van Smoorenburgスクリプトsystemd-sysv-generatorを翻訳するための万能のメカニズム的な方法が存在しないからです。rc

rcDebian systemd の開発者は、 Debian で使用されていたvan Smoorenburg スクリプトがすべて適切なサービス ユニットに置き換えられたと判断し、2016 年 7 月にパッチを廃止しました。Sあなたのスクリプトは自作のようです。

この場合、実行レベルを完全に忘れた方がよいでしょうS。説明だけに基づいた私の推測では、実際に作成する必要があるのは次のようなサービス ユニットです。

デフォルトの依存関係=いいえ
後=local-fs.target
前=ネットワーク-pre.target
希望=ネットワーク-pre.target
そしてそれはWanted-Byおそらく適切なものでしょうbasic.target

あなたのサービスが実際に何をするかにもよりますが、その後の注文はlocal-fs.targetやり過ぎかもしれません。しかし、それはあなただけが決められることです。

参考文献

関連情報