方式一:在/etc/rc.local文件中加入启动命令
这种方式适合linux用户手动配置自启动程序。
方式二:在/etc/rc[0-6].d/目录建立软链接,软链接指向/etc/init.d/目录下的控制脚本
(1)基本原理:
可以看到/etc/rc0.d目录下的文件指向/etc/init.d目录下的文件
/etc/rc[0-6].d目录下文件的命名规则:S|K + nn + script
- 0-6是linux操作系统的运行级别,运行runlevel查看当前运行级
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限用户,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
- S|K,S开头命名的是开机要执行的脚本,K开头命名的是关机要执行的脚本
- nn取值0-100,表示优先级,数字越大,优先级越低
- script是软链接指向的脚本的文件名
/etc/init.d目录下的控制脚本接受参数start|stop|restart|status|force-reload
(2)实现方式
centos、redhat、Debian等系统:使用chkconfig
[root@localhost ~]$ ls /etc/init.d/httpd # /etc/init.d/目录下必须有启动脚本
[root@localhost ~]$ chkconfig --add httpd # 添加服务,以便让chkconfig指令管理它
[root@localhost ~]$ chkconfig httpd on # 设置开机运行该服务,默认是设置2345等级开机运行服务
[root@localhost ~]$ chkconfig --list # 列出所有被chkconfig管理的服务
[root@localhost ~]$ chkconfig --del httpd # 删除指定的服务,不再让chkconfig指令管理它
[root@localhost ~]$ chkconfig httpd off # 设置开机不运行服务,需要先执行 --add 才能执行该命令
[root@localhost ~]$ chkconfig --level 35 httpd on # 设置服务在等级3和5时开机运行服务,默认是设置2345等级开机运行服务
ubuntu和feadora等系统:使用sysv-rc-conf(rcconf类似)
安装方法:
- sudo apt install sysv-rc-conf安装该软件
- sudo cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig
参考: