upstart如何启用或者禁用服务?

分享于 

3分钟阅读

ubuntu

  繁體

答案1

当前,在Ubuntu中,实际上有SysV,Upstart和systemd这三种方法可以将软件作为服务启动。

在Linux中启动服务的传统方法是在/etc/init.d中放置一个脚本,然后使用update-rc.d命令(或者在基于RedHat的发行版中,chkconfig )来启用或禁用。

Upstart

Upstart使用/etc/init中的作业定义文件来定义服务应该启动的事件,在系统启动时,upstart处理各种事件,然后可以并行启动多个服务,

通过运行ls /etc/init/*.conf可以查看所有启动作业文件

为了确定服务是否基于upstart,可以运行status命令:

 
status servicename



如果是启动作业,它显示以下内容:


$ status statd


statd start/running, process 942



但是,如果它不是,你将看到类似下面的内容:


$ status apache2


status: Unknown job: apache2



在这种情况下,apache2尚未转换为upstart。


sudo update-rc.d apache2 disable


sudo service apache2 stop



在upstart中禁用服务()

Upstart作业定义没有update-rc.d命令,要禁用作业,你需要直接编辑作业文件以禁用它,有两种方法可以做到这一点。

如果想仍然能够手动启动它,那么你需要注释掉start on条件,你想要安装samba,但没有自动启动它,


description"SMB/CIFS File Server"


author"Steve Langasek <steve.langasek@ubuntu.com>"



start on local-filesystems


stop on runlevel [!2345]



respawn



pre-start script


 RUN_MODE="daemons"



 [ -r /etc/default/samba ] && . /etc/default/samba



 ["$RUN_MODE" = inetd ] && { stop; exit 0; }



 install -o root -g root -m 755 -d /var/run/samba


end script



exec smbd -F



要禁用samba,只需将#放在"start on local-filesystems"前面。注意,虽然它不会在引导时启动备份,但你仍然需要停止它,


sudo service smbd stop



但是,如果不想让samba启动,我建议实际上删除包,但是,如果希望安装它,但不能启动,还可以执行以下操作:


mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled




服务  services  UPS  Upstart