使Upstart机制下的服务在系统启动时自动启动失效的三种方法+1

/*********************************************************************
 * Author  : Samson
 * Date    : 02/04/2015
 * Test platform:
 *              3.13.0-24-generic
 *              GNU bash, 4.3.11(1)-release
 * *******************************************************************/

upstart官方的修改server的方法说明了三种方法可以实现这样的功能:

11.44   Disabling a Job from Automatically Starting章节中,说明了这三种方法:

从Upstart 0.6.7版本开始,要使Upstart的自动启动一个任务的功能失效,可以通过两种方法进行实现:

1、修改任务或服务的自动启动脚本的名称*.conf为名称结尾为非.conf结尾的;

2、编辑*.conf文件中的内容,在start on这行的行头添加‘#‘,使start on 行成为注释行;

以上两种方法配置后要进行恢复的话,反向进行操作即可;

With Upstart 0.6.7, to stop Upstart automatically starting a job, you can either:

  • Rename the job configuration file such that it does not end with ".conf".
  • Edit the job configuration file and comment out the "start on" stanza using a leading ‘#‘.

To re-enable the job, just undo the change.

3、从Upstart 1.3版本开始,提供了一种新的方法,覆盖文件的方法,即对对应的配置文件的内容进行覆盖重写,

例如:

# echo "manual" >> /etc/init/myjob.override表示myjob的任务或服务只能够进行手动启动;还可以直接覆盖*.conf文件,如:
# echo "manual" >> /etc/init/myjob.conf但这样的操作的话,会在恢复的时候原始的配置文件就不一定能够找到了;

With Upstart 1.3, you can make use of an "override file" and themanual stanza to achieve the same result in a simpler manner[31]:

# echo "manual" >> /etc/init/myjob.override

Note that you could achieve the same effect by doing this:

# echo "manual" >> /etc/init/myjob.conf

However, using the override facility means you can leave the original job configuration file untouched.

To revert to the original behaviour, either delete or rename the override file (or remove themanual stanza from your ".conf" file).

For Session Jobs, note that if an override already exists "higher" up the search path, only that override file will apply: you cannot override an override file.

4、其实,还有一种方法也是能够实现不让服务自动启动的,例子如下:

例如某服务的.conf配置文件中原来的start on 行的配置如下:

start on started  mdm

上行配置的意思是说当前配置文件对应的服务自动启动是在mdm服务已经启动起来的前提下,那如何进行disable这个服务不自动启动呢?就用disable就行了 ;-(, 如下:

start on started disabled and mdm

这样在再次启动时就不会再进行自启动了;

以上四种方法都能够实现对某个任务或服务的自动启动进行失效,但是若是考虑到软件升级的问题的话,还是第三种方法:使用myjob.override的方法更好,因为myjob.conf文件本身并没有变化,所以并不会造成就此文件变化了后要进行升级的操作,当下次进行升级的时候也不会影响自己修改过的任务的配置,这是作为一个快速响应及长期维护的运维角度要去考虑的问题;

Ref:

http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

http://overtag.dk/wordpress/2011/02/headaches-over-disablingenabling-services-init-d-scripts-in-ubuntu-10-10/

时间: 2024-10-08 09:48:22

使Upstart机制下的服务在系统启动时自动启动失效的三种方法+1的相关文章

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

linux下查看uuid的三种方法及使用uuid的作用

查看设备的uuid的三种方法,总结如下: 1 命令查看:blkid2 文件查看:ls -l /dev/disk/by-uuid3 命令查看:vol_id /dev/sda1 UUID的作用及意义 1:它是真正的唯一标志符 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的.如果你在系统中启动的时候,使用盘符挂载时,可能找不到设备而加载失败,而使用UUID挂载时,则不会有这样的问题. 2:设备名并非总是不变的 自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺

关于上一篇鼠标移到按钮时的“按下”效果的三种方法

上一篇博文中,关于按钮按下的效果回过头研究了下,总结了如下三种方法,只写出关键样式: 1.相对定位 1 input.button{ 2 3 position:relative; //用相对定位 4 } 5 6 input.button:hover{ 7 top:2px;//鼠标移动到此top增加2px 8 } 2.主要利用外边距这个属性,鼠标移动到按钮位置时,按钮上外边距增加2px,下外边距减少2px(相当于走出去2px又退回来2px),就可以达到按下效果,如果只是单独写margin-top:2

Linux下快速清空文件内容的三种方法

Linux下快速清空文件内容的三种方法在Linux环境中,我们如果想快速清空一个文件或者log的内容: 1.#echo "" > test.txt(文件大小被截为1字节) 2.# > test.txt(文件大小被截为0字节) 3.#cat /dev/null > /home/test.txt(文件大小被截为0字节)————————————————版权声明:本文为CSDN博主「贾维斯博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声

linux 下 osw随操作系统启动而自动启动的标准脚本

linux 下 osw随操作系统启动而启动的标准脚本.osw是指--os watcher,这是一个监控os各项指标的shell脚本.osw的监控数据一般用于oracle技术人员评估os各项资源的使用情况,该使用情况会作为oracle 技术人员评估一些oracle 数据库行为(比如节点驱逐等)的参考依据. [[email protected] ~]$ cat /etc/rc.local #!/bin/sh # # This script will be executed *after* all t

C++中实现回调机制的几种方式(一共三种方法,另加三种)

(1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型. 比如下面的示例代码,我们在Download完成时需要触发一个通知外面的事件: typedef void (__stdcall *DownloadCallback)(const char* pURL, bool bOK);void DownloadFile(const char* pURL, DownloadCallback call

linux下日期时间自动同步设置(rdate,ntpdate两种方法)

linux下同步时间,至少有两种方法:rdate,ntpdate两种.centos最小化安装默认不安装,先确认已经安装过,否则先安装.其中rdate本身是用来获取远程时间服务器上时间用的,带上 -s 参数,就可以将获取到的时间应用到本地系统. NAME       rdate - get the time via the networkSYNOPSIS       rdate [-p] [-s] [-u] [-l] [-t sec] [host...]DESCRIPTION       rdat

Linux 下系统调用的三种方法

系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU.磁盘.打印机等)进行交互提供的一组接口.当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系统调用函数.下面介绍Linux 下三种发生系统调用的方法: 通过 glibc 提供的库函数 glibc 是 Linux 下使用的开源的标准 C 库,它是 GNU 发布的 libc 库,即运行时库.glibc 为程序员提供丰富的 API(Application Programming Interfac

Linux -- ubuntu下安装程序的三种方法

引言 在ubuntu当中,安装应用程序我所知道的有三种方法,分别是apt-get,dpkg安装deb和make install安装源码包三种.下面针对每一种方法各举例来说明. apt-get方法 使用apt-get install来安装应用程序算是最常见的一种安装方法了,比如我要安装build-essential这个软件,使用以下,他会帮我把所有的依赖包都一起安装了. sudo apt-get install build-essential 执行上述命令以后,我们可以看到一下信息,The fol