我正在将 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 标准基础规范因为紧接在初始化信息块之后的是lsb 初始化函数(来源自. /lib/lsb/init-functions
)。该系统还运行 Debian 8 Jessie。
我应该在运行级别的等效 systemd 单元文件中放置什么目标S
?
答案1
S
在 systemd 中没有直接对应关系。该systemd-sysv-generator
程序不处理此类 van Smoorenburgrc
脚本。
德班曾经拥有该程序的修补版本,包装了一个在服务单元内rc
使用的脚本S
,没有默认依赖项,并且是所需要的sysinit.target
。这是不完美的,但是后来全部的操作systemd-sysv-generator
是不完美的,因为没有一种万能的机械方法来翻译范·斯穆伦堡rc
脚本。
Debian systemd 人员早在 2016 年 7 月就废除了该补丁,当时他们认为rc
Debian 中使用的所有 van Smoorenburg 脚本S
都已被适当的服务单元取代。你的似乎是自家种植的。
在这种情况下,您最好完全忘记S
运行级别。我的有根据的猜测,仅基于描述,您真正应该制作的是一个服务单元,它是:
默认依赖项=否 After=local-fs.target 之前=network-pre.target Wants=network-pre.target这
Wanted-By
可能是合适的basic.target
。
根据您的服务的实际用途,之后的订购local-fs.target
很可能是多余的。但这是只有你才能决定的事情。