`systemctl` 的 --now 开关

15 startup systemd services systemctl

手册页所述,

systemctl --now enable servicename
Run Code Online (Sandbox Code Playgroud)

应该启用启动服务。

但在许多不同的发行版下,它对我来说从来没有用过。

而输出:

systemctl is-enabled 启用,

systemctl is-active 该服务仍处于非活动状态。

这个开关有什么用?

我尝试过其他组合,例如:

systemctl enable --now servicename
Run Code Online (Sandbox Code Playgroud)

和:

systemctl enable servicename --now
Run Code Online (Sandbox Code Playgroud)

但还是一样;我systemctl start servicename每次都必须手动,即使上一个命令(即enable部件)成功执行。

应用程序对systemd服务的实现是否应该支持它在单元文件中的某处实现该功能;许多知名服务没有遵循,这让我认为它完全无用;我假设考虑过它。

Dav*_*rks 18

我也发现这很烦人。

看起来这个--now开关是在 220 版中添加的(请参阅更改日志中的这一行),而 CentOS 7 目前是 219 版。希望很快!

您可以使用systemctl --version.

  • 仅供参考,我在 CentOS 7 上,`# systemctl --version` 告诉我我正在使用 `systemd 219`,但我已经确认 `--now` 标志确实启动了一个停止的服务。也许 RHEL/CentOS 向后移植? (2认同)