有时候咱们须要Linux系统在开机的时候自动加载某些脚本或系统服务。在解问题以前先来看看Linux的启动流程。html
主要顺序就是:
1. 加载内核
2. 启动初始化进程
3. 肯定运行级别
4. 加载开机启动程序
5. 用户登陆linux
启动流程的具体细节能够看看Linux 的启动流程
redis
第4步加载启动程序实际上是两步:shell
ps:“指定目录”是指在第3步中设置的运行级别对应的目录。服务器
要完成咱们的需求,咱们使用第4步中的任意一种方式均可以。spa
下面分别就是这两种方式的具体实现:.net
1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚本内容以下:命令行
#!/bin/sh #chkconfig: 2345 80 90 #description:开机自动启动的脚本程序 # 开启redis服务 端口为6379 /usr/local/service/redis-2.8.3/src/redis-server --port 6379 &
脚本第一行 “#!/bin/sh” 告诉系统使用的shell;
脚本第二行 “#chkconfig: 2345 80 90” 表示在2/3/4/5运行级别启动,启动序号(S80),关闭序号(K90);
脚本第三行 表示的是服务的描述信息code
注意: 第二行和第三行必写,负责会出现如“服务 autostart.sh 不支持 chkconfig”这样的错误。server
2. 将写好的autostart.sh脚本移动到/etc/rc.d/init.d/目录下
3. 给脚本赋可执行权限
cd /etc/rc.d/init.d/ chmod +x autostart.sh
4. 添加脚本到开机自动启动项目中
chkconfig --add autostart.sh chkconfig autostart.sh on
到这里就设置完成了,咱们只须要重启一下咱们的服务器,就能看到咱们配置的redis服务已经能够开机自动启动了。
末尾加入以下语句
/usr/local/service/redis-2.8.3/src/redis-server --port 6379 &
切忌 命令行末尾要加上 [ & ] 符号(介绍), 表示任务在后台执行。不然会阻塞后面添加的命令行执行。
完毕。
PS:
https://blog.csdn.net/karchar/article/details/52489572
https://blog.csdn.net/daidaineteasy/article/details/54864776
https://blog.csdn.net/chinabestchina/article/details/72686002