方法一:修改rc.local
1. 因为在CentOS7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权限
chmod +x /etc/rc.d/rc.local
2. 赋予脚本可执行权限
chmod +x /usr/local/script/autostart.sh
3. 打开/etc/rc.d/rc.local
文件,在末尾增加如下内容
/usr/local/script/autostart.sh
方法二:chkconfig管理
1. 编写脚本
vi test.sh
#! /bin/bash
# chkconfig:2345 80 90
# description:test
echo "开机自启动测试" > /test.txt
chkconfig启动脚本规范:
在脚本开头加入下面内容:
#!/bin/sh #chkconfig:2345 80 90 #decription:开机自启动测试
表明 test 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为80, 停止优先权为90。数字越大,优先级越小
2. 移动到/etc/init.d
目录下
mv test.sh /etc/init.d/
3. 赋予执行权限
chmod +x /etc/init.d/test.sh
4. 添加到chkconfig,开机自启动
chkconfig --add test.sh
5. 查看是否添加成功
chkconfig --list test
6. 删除服务
chkconfig --del test.sh
7. 验证
重启服务器
reboot
查看根目录下test.txt是否创建,内容是否正确
补充:
1. Linux 系统的 7 个运行级别
运行级别是操作系统当前正在运行的功能级别,它让一些程序在一个级别启动,而在另外一个级别的时候不启动。Linux 系统一般使用 7 个级别。
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,改root密码,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统重启,默认运行级别不能设为6,否则不能正常启动
2. 运行级别的原理
-
在目录
/etc/rc.d/init.d
下有许多服务器脚本程序,一般称为服务(service) -
在
/etc/rc.d
下有7个名为rcN.d的目录,对应系统的7个运行级别 -
rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
-
系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件。对于以K开头的文件,系统将终止对应的服务;对于以S开头的文件,系统将启动对应的服务
上述第3和第4条解释了脚本开头
#chkconfig:2345 80 90
的本质(为什么数字越大,优先级越小)。chkconfig后面三个参数2345, 80和90,告诉chkconfig程序:
需要在rc2.d~rc5.d目录下,创建名字为S80test.sh的文件连接,连接到/etc/rc.d/init.d目录下的的test.sh脚本;
需要在rc0.d、rc1.d和rc6.d目录下,创建名字为K90test.sh的文件连接,连接到/etc/rc.d/init.d目录下的的test.sh脚本。
所以数字越大,文件越靠后,因此优先级就越小。
-
查看运行级别用:
runlevel
-
进入其它运行级别用:
init N
-
另外
init 0
为关机,init 6
为重启系统
评论区