linux服务开机启动

时间:2021-11-08 03:48:59
1、chkconfig 配置开机启动

在  /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
 
2、/etc/rc.local 文件中添加开机启动命令。
开机的时候,执行完 /etc/rcx.d  (x表示0到6中的一个数字,对应7个运行级别的启动目录),最后会执行/etc/rc.local脚本,我们将要启动的服务脚本写到这个文件即可。    如果不生效,检查文件是否有可执行权限
#!/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 &