在12.10中如何启动系统服务?


12

在Ubuntu中一直令我困惑的一件事是系统服务的启动方式。我知道Ubuntu使用Upstart并支持SysV,但是哪个用于启动服务?当您想要“手动”启动服务时,这很重要。

例如,在我的系统上,我在/etc/init.d/<service>(SysV)和/etc/init/<service>.conf(Upstart)中具有以下服务的文件:

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

因此,如果我想在启动时禁用MySQL执行,是否必须使用Upstart方式或SysV方式禁用它?另外,我该如何分辨哪一个真正用于启动一般服务?

编辑

这里真正的疑问不是如何使用SysV / Upstart禁用/启用服务。真正让我困惑的是,似乎在SysV和Upstart中同时定义(并启用了)某些服务。它们之间是否有任何优先级(例如是否mysql都启用了SysV来启动它们)?还是一种工具在后台使用另一种工具?


1
在这里查看已接受的答案:askubuntu.com/questions/133807/…有一些有趣的链接。
Rinzwind

Answers:


2

关于在SysV和upstart中定义的服务,通常,如果通过SysV重新启动它,则会看到以下内容:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

我的意思是这些服务首选Upstart,而SysV实现只是包装器。

另外,我认为您具有目录的含义。/ etc / init是新贵的配置,/ etc / init.d是SysV的兼容性,但是对于这些类型的服务,它只是新贵的符号链接。


6

它确实很大程度上取决于应用程序及其包装维护者。

对于Upstart脚本,强烈偏爱它们,因为它们处理事件(通常是一件好事),但是许多应用程序没有足够好的Upstart脚本可用,或者应用程序的维护者选择保留默认值(应用程序或Debian的默认值) 。

无论哪种方式,您都必须适应。

  • 对于新贵:
    • 将文件重命名为不结束的文件.conf,或者
    • 添加manual到文件。这将允许您手动加载服务。
  • 对于较旧的服务:

    update-rc.d -f <service> remove
    

如果你有一个/etc/init.d/东西的脚本一个/etc/init/脚本,并要检查的init.d版本仍然是活的,你可以检查有:

ls -l /etc/rc?.d/*<service>

如果您看到符号链接的负载,则将其安装在旧的SysV初始化中。


因此,如果我有在SysV和Upstart中启用的服务(例如acpid),我可以假定它是由SysV启动的吗?或者,如果我想禁用它,则需要使用update-rc.d和重命名技巧?
塞勒姆
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.