背景

在ubuntu下做开发,虚拟机要经常开启和关闭,重要的进程需要随机自启,非重要的可以手工启动。比如nginx就需要自启,confluence就没那么重要了。

为了控制哪些程序要自启,哪些程序不要自启,ubunt提供了一套API,update-rc.d。以下就是对于该API的操作示例和简单说明。

update-rc.d --help可查看更多用法。

===========================================

重要概念说明

luwenwei@ubuntu:~/dev/project$ ll /etc/rc?.d/*confluence1
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc0.d/K20confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc1.d/K20confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc2.d/S20confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc3.d/S20confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc4.d/S20confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc5.d/S20confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Apr 27 2016 /etc/rc6.d/K20confluence1 -> ../init.d/confluence1*

confluence1是个shell脚本,rc*.d用来控制它的启不启动.
以/etc/rc0.d/K20confluence1为例,分解下/etc/rc[$a].d/$b$c$d,$a=0, $b=K, $c=20, $d=confluence1
$a: runlevel, [0-6]几个值, 0表示系统停机状态 1表示单用户或者系统维护状态 2-5表示多用户状态 6表示重启
$b: 启动/禁止启动, K/S,K表示开启,S表示停止;
$c: priority, 0-99 表示优先级, 1优先级最高,99优先级最低
$d: 服务执行脚本,shell脚本

查看某个服务:
ll /etc/rc?.d/*confluence1
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc0.d/K90confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc1.d/K90confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc2.d/S90confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc3.d/S90confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc4.d/S90confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc5.d/S90confluence1 -> ../init.d/confluence1*
lrwxrwxrwx 1 root root 21 Dec 15 11:57 /etc/rc6.d/K90confluence1 -> ../init.d/confluence1*

更新某个服务:
luwenwei@ubuntu:~/dev/project$ sudo update-rc.d confluence1 start 90 2 3 4 5 . stop 90 0 1 6 .
System start/stop links for /etc/init.d/confluence1 already exist.

luwenwei@ubuntu:~/dev/project$ sudo update-rc.d confluence1 start 90 2 3 4 5 . stop 90 0 1 6 .
Adding system startup for /etc/init.d/confluence1 ...
/etc/rc0.d/K90confluence1 -> ../init.d/confluence1
/etc/rc1.d/K90confluence1 -> ../init.d/confluence1
/etc/rc6.d/K90confluence1 -> ../init.d/confluence1
/etc/rc2.d/S90confluence1 -> ../init.d/confluence1
/etc/rc3.d/S90confluence1 -> ../init.d/confluence1
/etc/rc4.d/S90confluence1 -> ../init.d/confluence1
/etc/rc5.d/S90confluence1 -> ../init.d/confluence1

删除某个服务:
luwenwei@ubuntu:~/dev/project$ sudo update-rc.d -f confluence1 remove
Removing any system startup links for /etc/init.d/confluence1 ...
/etc/rc0.d/K20confluence1
/etc/rc1.d/K20confluence1
/etc/rc2.d/S20confluence1
/etc/rc3.d/S20confluence1
/etc/rc4.d/S20confluence1
/etc/rc5.d/S20confluence1
/etc/rc6.d/K20confluence1

【ubuntu】开机启动的更多相关文章

  1. Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启动程序/服务)

    注意:rc.local脚本里面启动的用户默认为root权限. 一.rc.local脚本 rc.local脚本是一个Ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/et ...

  2. Redis之Ubuntu开机启动

    1.编译源码,生成可执行文件: 2.将生成的可执行文件拷贝到 /user/local/bin目录下,若没有x权限请加上: 3.将安装包中的 redis.conf配置文件移到/etc/redis.con ...

  3. Ubuntu开机启动roscore服务的设置

    1.在/etc/init.d中添加启停脚本ros_daemon.bash: #!/bin/bash ### BEGIN INIT INFO # Provides: ros_daemon.bash # ...

  4. Ubuntu 开机启动是出现 grub rescue 解决办法

    最近想在Ubuntu的基础上,再在硬盘的一个分区安装Windows,其中有次不小心,在安装windows的时候,删除了一个分区,造成下次启动Ubuntu系统出现 grub rescue 下面是我的修复 ...

  5. Ubuntu开机启动的方式

    方法一:--------------------------------------------------1. 在/etc/init.d/下放置启动脚本,比如postgresqlroot@ubunt ...

  6. Ubuntu开机启动svn

    一.创建脚本 $cd /etc/init.d/$sudo vim svnserve 内容如下#! /bin/shsudo svnserve -d -r /home/svn 二.脚本权限设置 sudo ...

  7. ubuntu 开机启动shell脚本

    1.创建shell启动脚本test 2.将启动脚本复制到 /etc/init.d 目录下 3.设置脚本文件权限 sudo chmod 755 /etc/init.d/test 4.设置脚本启动 sud ...

  8. ubuntu开机启动

    /rc.local  (ran as root) https://unix.stackexchange.com/questions/210939/what-user-runs-the-commands ...

  9. Ubuntu 开机启动不执行

    解决方案: 1.将/etc/rc.local的命令改成更加兼容的模式,将"#!/bin/sh"改为"#!/bin/bash" 2.将/bin/sh重新链接到/b ...

  10. Ubuntu 16.04设置rc.local开机启动命令/脚本的方法

    Ubuntu 16.04设置rc.local开机启动命令/脚本的方法       Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启 ...

随机推荐

  1. (转)js网址验证

    这个url的正则表达式判断的js!是比较全面的.它验证的情况包括!IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!是我见过的最全面的url验证了!可能还有遗漏的! <s ...

  2. 淘宝ued - 前端智勇大闯关(第三季)答案(更新)

    淘宝ued - 前端智勇大闯关(第三季)答案(更新) 下午在微博上看到了淘宝智勇大闯关第三季的信息,感觉挺有意思的,于是就尝试做了下.附上题目地址: http://ued.campus.alibaba ...

  3. bzoj 1430: 小猴打架 -- prufer编码

    1430: 小猴打架 Time Limit: 5 Sec  Memory Limit: 162 MB Description 一开始森林里面有N只互不相识的小猴子,它们经常打架,但打架的双方都必须不是 ...

  4. 使用Unity创建塔防游戏(Part2)

    How to Create a Tower Defense Game in Unity – Part 2 原文地址:https://www.raywenderlich.com/107529/unity ...

  5. Springmvc @CookieValue实用

    页面直接请求,  Controller代码 @RequestMapping("/testCookieValue") public String testCookieValue(@C ...

  6. 三分钟跑起jsblocks

      1下载代码 git clone https://github.com/astoilkov/jsblocks-seed.git 2安装依赖 Peng@PENG-PC /F/home/qianduan ...

  7. openstack私有云布署实践【9.2 Glance镜像管理(办公网环境)】

    首先登录controller1创建glance数据库,并赋于远程和本地访问的权限.      mysql -u root -p   CREATE DATABASE glance; GRANT ALL ...

  8. iOS 手势识别

    首先给大家解释一下为什么要学习手势识别? 如果想监听一个UIView上面的触摸事件,之前的做法是: 自定义一个UIView : 实现UIView的touches方法,在方法里面实现具体功能 透过tou ...

  9. 遇到delphi连接sql一个奇怪的问题:未指定的错误,加大了命令的等待时间为600即可了

    遇到delphi连接sql一个奇怪的问题:未指定的错误,加大了命令的等待时间为600即可了 找了一下午没解决.

  10. CAD打开缓慢问题解决方法

    打开AutoCAD很卡,大概需要1分钟 打开Internet Explorer,点击工具菜单,打开"Internet选项",去勾选"检查发行商的证书是否吊销", ...