方法1 chkconfig:
原理: /etc/init.d 是/etc/rc.d/init.d的软链接,
当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的运行级别确定不同的启动级别。
假设需要开机启动的脚本叫 xxx.sh
- 在 autostart.sh 开头加入下面内容(chkconfig启动脚本规范)
#!/bin/bash
# chkconfig: 2345 90 10 #服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,停止的优先级是10。 优先级范围是0-100,数字越大,优先级越低。
# description: xxx
# ---begin---------
echo "xxx..."
# ---end ---------
注意:不添加 chkconfig: 2345 90 10, 添加启动项时会提示service myservice does not support chkconfig。
- 将脚本移动到 /etc/init.d 目录下, 并增加脚本的可执行权限
mv xxx.sh /etc/init.d
chmod +x /etc/rc.d/init.d/xxx.sh
- 添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add xxx.sh
chkconfig xxx.sh on
方法2:
#1、赋予你的脚本可执行权限
chmod +x /home/xxx.sh
#2、打开 /etc/rc.d/rc.local或/etc/rc.local文件,在末尾增加如下内容
su - user -c '/home/xxx.sh'
#3、在 centos7 中,/etc/rc.d/rc.local 的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local