解决方案
方案一
在centos7中,/etc/rc.d/rc.local
文件的权限被降低了,没有执行权限,需要给它添加可执行权限。
[root@xh003 rc.d]# pwd
/etc/rc.d
[root@xh003 rc.d]# ls
init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
[root@xh003 rc.d]#
编辑脚本内容,在里面添加开机自启的命令即可。
[root@xh003 rc.d]# vim rc.local
方案二
进入目录/etc/init.d
创建文件例如yy
编辑文件内容
#!/bin/bash
#chkconfig:345 61 61
#description:yy auto reboot
export JAVA_HOME=/usr/java/jdk1.8.0_241
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# zk
sleep 2
cd /iflytek/server/zookeeper/bin
./zkServer.sh restart
chkonfig后面是启动级别和优先级,description后面是服务描述。优先级范围是0-100,数字越大,优先级越低。
上面脚本意思是:服务必须在运行级3,4,5下被启动或关闭,启动的优先级是61,停止的优先级是61。
添加服务
[root@xh003 init.d]# chkconfig --add yy
查看服务
[root@xh003 init.d]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
yy 0:关 1:关 2:开 3:开 4:开 5:开 6:关
[root@xh003 init.d]#
开启服务自启动
chkconfig yy on
关闭服务自启动
chkconfig yy off
删除服务
chkconfig --del yy
重启验证
reboot重启验证即可。
补充说明
Linux启动优先级
运行级别就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。
这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)
# 缺省的运行级,RHS用到的级别如下:
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
# 对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。
网友评论