Fedora / RHEL / CentOS用于Debian / Ubuntu的“service servicename start”是什么等价物?

Fedora / RHEL / CentOS用于Debian / Ubuntu的“service servicename start”是什么等价物?
我刚刚在serverfoault上读到了一些关于使用/etc/init.d/service的问题,那么Debian上的正确方法是什么?

我不知道“正确”的方式,但我总是使用invoke-rc.d ,例如重新启动MySQL:

 sudo invoke-rc.d mysql restart 

你总是可以直接调用启动脚本(例如/etc/init.d/foo restart)。 这也适用于RedHat变种,尽pipepath略有不同(/etc/rc.d/init.d,尽pipe我相信/etc/init.d也是它的一个符号链接)。

所有的发行版都有/etc/init.d/service ********** {start | restart | reload | stop}

在Ubuntu 9.04中,同样的service <servicename> start适用于我。 它在sysvinit-utils包中。

在RedHat上使用/etc/init.d/foo会导致问题,如果selinux被激活,因为脚本不能正确设置上下文。 service命令始终在支持selinux的RHEL上运行。

我build议你阅读一下Upstart:

http://upstart.ubuntu.com/

http://www.linux.com/archive/feature/125977

http://www.netsplit.com/category/tech/upstart/

它用于:

  • Ubuntu 6.10和更高版本
  • Fedora 9和更高版本
  • Debian(作为一个选项)
  • 诺基亚的Maemo平台
  • Palm的WebOS

是的,这也是我使用的。 /usr/sbin/invoke-rc.d是要走的路。

无论在Redhat系统上,/etc/init.d/service仍然是Debian衍生产品的标准。