这里整理Debian 开机自动运行机制的一种情况,就是rc0.d rc1.d .... rcn.d
在/etc目录下,有init.d目录,其中放着一些脚本还有rc.local ,都是放着开机后自动运行的脚本。
而在/etc/rc(n).d目录中,实质上放着是类似快捷方式的链接文件。只想init.d中的脚本。
如果我们想添加一个自动运行的脚本,现在/etc/init.d目下新建一个,脚本可以使python ,sh都可以。
具体的格式可以参见/etc/init.d目录中的一些例子。
关键是 update-rc.d scriptname start 99 2 3 4 5 stop 01 0 1 6
其中 scriptname ,就是自动运行的脚本的名字
start 后面的一个参数 ,是启动的运行顺序 ,后面的2 3 4 5 (可多可少) 为在哪几个级别中运行(Debian 没有图形界面时, 默认是2)
stop 同stop ,是关关机时运行的顺序,后面的(0 1 6) 也是运行级别。
运行级别介绍:在/etc/inittab里面看,下面的定义并不是标准配置,随着Debian版本的改变而改变。
一般2、3、4、5都是自定义的,具体看系统服务在2、3、4、5哪个级别运行。
比如gdm在5运行,那就是5是图形界面,如果gdm在2、3、4、5都运行,那么所有的2、3、4、5开机都会启动图形界面
0 停机
1 单用户模式
2 多用户,没有NFS
3 完全多用户模式
4 不知道
5 图形界面
6 重新启动
debian wheezy 里边要添加一个自动启动的服务
先将启动脚本放在/etc/init.d,然后使用insserv来启用这个服务
例如服务名称为 myserver,则脚本为/etc/init.d/myserver
然后使用 insserv myserver可以将myserver设为自动启动
- insserv myserver #添加服务
- insserv -r myserver #删除服务
- insserv -d myserver #使用默认的runlevels
脚本里边要定义启动文件的metadata,格式
- #!/bin/bash
- #
- ### BEGIN INIT INFO
- # Provides: mysql
- # Required-Start: $remote_fs $syslog
- # Required-Stop: $remote_fs $syslog
- # Should-Start: $network $time
- # Should-Stop: $network $time
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start and stop the mysql database server daemon
- # Description: Controls the main MySQL database server daemon "mysqld"
- # and its wrapper script "mysqld_safe".
- ### END INIT INFO
- #