本文以/init.d/redis-server-2脚本为例,介绍如何自定义开机启动项。
/etc/init.d目录下是所有的启动脚本,我们可以通过以下命令来运行。
1 | /etc/init.d/脚本名 参数 |
1. 查看机启动级别
1 | Runlevel |
显示 N 2
则当前的级别是2级,那么所有开机启动项就是在/etc/rc2.d目录下。
2. 查看原redis启动序号
1 | ls -l /etc/rc2.d |
这个目录下都是软链接(符号链接),链接到/etc/init.d目录。
显示格式如下:S/K + 序号 + 脚本名
1 | lrwxrwxrwx 1 root root 22 Dec 2 15:37 S20redis-server -> ../init.d/redis-server |
启动序号是20
S开头是开机时的脚本启动顺序,按序号从小到大启动。
K开头表示是关机时的脚本关闭顺序,按序号从大到小关闭。
3. 将启动脚本软链接到开机启动目录下
1 | ln -s /etc/init.d/redis-server-2 /etc/rc2.d/S20redis-server-2 |
注意:如果两个redis有主从关系的话即需要有先后启动顺序,就需要适当的增大序号,如21
1 | ln -s /etc/init.d/redis-server-2 /etc/rc2.d/S21redis-server-2 |
*也可以使用update-rc.d命令,效果相同:
1 | update-rc.d -f redis-server-2 defaults 20 |
4. 取消开机启动
方法一:使用update-rc.d命令
1 | update-rc.d -f redis-server-slark remove |
方法二:直接删除软链接
1 | rm -f /etc/rc2.d/S20redis-server-slark |
5. 关于rc.local
rc.local也是开机启动脚本,从ls -l /etc/rc2.d 命令的输出结果也可以看出,它的启动序号是99。
所以rc.local里的内容是在所有更高级别的初始化脚本(rc1.d rc2.d …)运行之后再执行的。