如何在新的 systemd 服务中配置目标

如何在新的 systemd 服务中配置目标

我必须配置一个新的服务文件供 systemd 使用。我想知道我们是否可以将多个 taget 放在同一行中,after如下例所示,或者我必须为每个运行级别创建一个服务

例子 :

[Unit]
Description=New service 
After= runlevel2.target runlevel3.target runlevel4.target runlevel5.target

我不知道是否需要任何分隔符

旧服务有一个像这样的 chkconfig :

chkconfig: 2345 91 11

答案1

chkconfig行是 的参数update-rc.d,它采用三个位置参数:启动的运行级别列表以及启动和停止优先级——因此这不是一个可以互换的列表。

Systemd 不使用运行级别,因此在转换为 systemd 服务时很难准确映射。幸运的是,几乎每个人都使用2345or345作为运行级别配置,并且存在这些的直接翻译:

  • 默认配置中的运行级别 2-5 是多用户运行级别(即允许用户登录),因此这会转换为multi-user.target.

  • 在默认情况下运行级别 2 和 3 不同的发行版上,运行级别 3 启动 X 服务器,而运行级别 2 则不启动。如果你看到345,这很少见,那就转化为graphical.target

然后,目标将在行中引用WantedBy=,例如WantedBy=multi-user.target

相关内容