什么是 systemctl 等价物

Mar*_*naw 32 services systemd

我正在使用本教程将包从 .rpm 转换为 .deb 。但是,要测试和调试应用程序,我需要运行它。程序自述文件解释了如何将其作为服务运行:

systemctl enable progname.service
systemctl start progname.service
Run Code Online (Sandbox Code Playgroud)

这些命令在 ubuntu 上的等价物是什么?

Ely*_*Ely 13

Ubuntu 目前正在计划/开发在未来使用systemd。有关信息,请参阅以下链接:Vivid 将切换到使用 systemd 启动...发行说明:启动和服务管理

我正在使用 14.04。

您可以使用更原生的命令update-rc.d。检查手册页。

使用默认值启用服务(参见手册页):

sudo update-rc.d foo_service defaults
Run Code Online (Sandbox Code Playgroud)

禁用服务:

sudo update-rc.d foo_service remove
Run Code Online (Sandbox Code Playgroud)

请注意,为了在没有错误消息的情况下删除foo_service文件,不得存在。但是,您可以强制:

sudo update-rc.d -f foo_service remove
Run Code Online (Sandbox Code Playgroud)

  • 没有*也许*关于它。15.04 使用 systemd。 (4认同)

roa*_*dmr 5

systemctl 是 systemd 的控制实用程序:

http://www.freedesktop.org/software/systemd/man/systemctl.html

请注意,Ubuntu 不使用 systemd,它使用 upstart,它在原理上做了一些相同的事情,但有一些不同的概念。

对 systemd 没有太多了解,根据我在发布的文档中阅读的内容,我认为您不需要“启用”服务。只需将您的服务的 .conf 文件放在 /etc/init 中就应该让新贵意识到它。

不过,这就是问题的关键:您的服务的 systemd 配置文件在 Ubuntu 上未经修改将无法运行,您必须将其“翻译”为 Upstart 的等效版本。以下是新贵的文档:

http://upstart.ubuntu.com/cookbook/

一旦有了合适的 upstart .conf 文件,就可以使用以下方法启动服务(我认为相当于 systemctl start):

start your-service
Run Code Online (Sandbox Code Playgroud)

  • 问题是,从 13.10 开始,Ubuntu *确实* 使用 systemd 的 logind,默认情况下,当盖子合上时,它会挂起笔记本电脑。如果您希望它在发生这种情况之前锁定屏幕,则需要将 systemd 服务挂在盖子上,为此您似乎需要 `systemctl`。例如,参见 http://forum.xfce.org/viewtopic.php?id=8411 和 https://bbs.archlinux.org/viewtopic.php?id=148829。 (2认同)

Édo*_*pez 5

14.04 上的默认包systemd-services不提供systemdctl命令。

必须阅读文章如何安装和测试Systemd在Ubuntu 14.04忠实的塔尔羊和Ubuntu 12.04精确穿山甲,如果你想使用systemd

皮蒂PPA

有一个 PPAppa:pitti/systemd为 LTS 12.04、14.04 和即将推出的版本提供足够的包。