最近做的项目中,有很多的子系统,都是需要满足开机自启的,实现过程中,踩了一些坑,特此记录一下。
更新一下,还有另外一种较简单的方法,实际生产中用的很多
目录:/etc/rc.local
文件内容:
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
在下面直接添加自己服务的运行脚本就可以
1、在 /etc/init.d/目录下,创建脚本myservice
2、脚本前两行内容
#!/bin/bash
#chkconfig: 2345 10 90
...
...
下面编写你想执行的shell命令即可
其中2345是默认启动级别,级别有0-6共7个级别。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。
3、给脚本添加可执行权限
chmod +x myservice
4、交给chkconfig管理
chkconfig --add myservice
(我就是没有执行这一步,导致写的脚本一直无法被运行...)
5、chkconfig --list 可以查看自己的服务有没有添加到列表中