在 /etc/init.d 创建执行服务的可执行脚本,赋予脚本可执行权限。如果是通过yum 或者rpm安装的,并且已经在该目录下存在对应的启动脚本,就不用自己创建了。
需要开机通过chkconfig设置开机启动的服务,必须在 /etc/init.d 目录创建一个可执行脚本,服务名称就是脚本名称。
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。
# chkconfig: chkconfig缺省启动的运行级以及启动和停止的优先级。
# description: 对服务进行描述,可以用\ 跨行注释。
这两行注释必须要有
/etc/init.d/my-service 只是模拟一下,服务执行只是输出数字123
#!/bin/bash
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
echo 123;
chkconfig: 2345 20 80 表示这个服务在运行级别2345下运行 20表示开机启动优先权重 80表示关闭优先权重。实际上chkconfig --add 命令是将/etc/init.d中的启动脚本软连接到
/etc/rc.d/rc3.d (rc0.d ... rc6.d) 0-6个运行级别对应相应的目录。都是/etc/init.d 中启动脚本的软连接。
给 脚本 my-service 设置可执行权限,并通过chkconfig添加开机启动服务
chmod +x /etc/init.d/my-service
chkconfig --add my-service
/etc/init.d/中的脚本,可以通过命令:
service service-name [start/stop] 启动或者关闭。如果是自己编写的启动脚本,你需要学习一下shell的编写,其实就是用了 case in 命令进行编写的
例如
service nginx start
#!/bin/bash
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
#需要执行的脚本写绝对路径
/usr/local/rabbitmq_server-3.6./sbin/rabbitmq-server detached &