我正在使用以下方法将包从 .rpm 转换为 .deb本教程。但是,为了测试和调试应用程序,我需要运行它。程序自述文件解释了如何将其作为服务运行:
systemctl enable progname.service
systemctl start progname.service
这些命令在 ubuntu 上对应的是什么?
答案1
Ubuntu 目前正在计划/开发使用systemd将来。请参阅以下链接了解详情:Vivid 将切换到使用 systemd 启动...和发行说明:启动和服务管理
我正在使用 14.04。
您可以使用更原生的命令update-rc.d
。查看手册页。
使用默认值启用服务(参见手册页):
sudo update-rc.d foo_service defaults
禁用服务:
sudo update-rc.d foo_service remove
请注意,为了删除没有错误消息foo_service文件必须不存在。但是您可以强制:
sudo update-rc.d -f foo_service remove
答案2
systemctl 是 systemd 的控制实用程序:
http://www.freedesktop.org/software/systemd/man/systemctl.html
请注意,Ubuntu 不使用 systemd,而是使用 upstart,它原则上做了一些相同的事情,但有一些不同的概念。
我对 systemd 了解不多,但根据我发布的文档,我认为您不需要“启用”服务。只需将服务的 .conf 文件放入 /etc/init 中,upstart 就会知道这一点。
但问题的关键在于:您的服务的 systemd 配置文件在 Ubuntu 上未经修改就无法运行,您必须将其“翻译”为 Upstart 的等效版本。以下是 upstart 的文档:
http://upstart.ubuntu.com/cookbook/
一旦您有了合适的 upstart .conf 文件,您就可以使用以下命令启动服务(我认为相当于 systemctl start):
start your-service
答案3
14.04 上的默认软件包systemd-services
不提供该systemdctl
命令。
读
你必读文章如何在 Ubuntu 14.04 Trusty Tahr 和 Ubuntu 12.04 Precise Pangolin 上安装和测试 Systemd如果你想使用systemd
。
皮蒂电力供应协议
有一个 PPAppa:pitti/systemd
为 LTS 12.04、14.04 及即将推出的版本提供足够的软件包。