问题描述
我正在使用this tutorial将包从.rpm转换为.deb。但是,要测试和调试应用程序,我需要运行它。程序自述文件解释了如何使用以下命令将其作为服务运行:
systemctl enable progname.service
systemctl start progname.service
这些命令在ubuntu上相当于什么?
最佳解决办法
Ubuntu目前正在计划/开发将来使用systemd。有关信息,请参见以下链接:Vivid will switch to booting with systemd…和Release notes: Boot and service management
我正在使用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
次佳解决办法
systemctl是systemd的控制实用程序:
http://www.freedesktop.org/software/systemd/man/systemctl.html
请注意,Ubuntu不使用systemd,而是使用upstart,它在原则上做了一些相同的事情,但是有一些不同的概念。
没有足够的有关systemd的知识,并且根据我在发布的文档中阅读的内容,我认为您不需要”enable”服务。只需将/conf /init中用于服务的.conf文件删除,就应该让新贵意识到这一点。
不过,这是问题的症结所在:服务的systemd配置文件无法在Ubuntu上未经修改地工作,您必须”translate”才能将其与Upstart的等效版本结合使用。这是暴发户的文档:
http://upstart.ubuntu.com/cookbook/
一旦有了合适的upstart .conf文件,就可以使用以下命令启动服务(相当于systemctl start):
start your-service
第三种解决办法
14.04上的默认程序包是systemd-services
,它不提供systemdctl
命令。
Read
如果要使用systemd
,则必须阅读文章How To Install And Test Systemd On Ubuntu 14.04 Trusty Tahr And Ubuntu 12.04 Precise Pangolin。
Pitti PPA
有一个PPA ppa:pitti/systemd
,可为LTS 12.04、14.04及以后的版本提供足够的软件包。