centos7添加自定义服务和开机自启服务

本文介绍了在centos7中如何添加自定义服务以及设置开机自启,包括通过init.d方式和systemctl方法。通过init.d方式,需要在/etc/init.d/下添加脚本并赋予执行权限,设置开机自启。而通过systemctl,可以方便地管理通过rpm包安装的服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

centos7版本并没有彻底废除init服务管理方式,而是systemctl和init共存;用惯了centos6版本的小伙伴,有些不适应systemctl管理服务的方式,这两种方式以nginx服务为例都介绍一下:

一、添加自定义服务
1.通过init.d方式添加
1)在/etc/init.d/目录下添加脚本:

 vim /etc/init.d/nginx
   #!/bin/bash
   # chkconfig: - 99 20
   # description: Nginx Server Control Script
   NP="/usr/local/nginx/sbin/nginx"
   NPF="/usr/local/nginx/logs/nginx.pid"
   case "$1" in 
		start)
    	$NP;
    	 if [ $? -eq 0 ] 
    	 then
     	 echo "nginx is starting!! "
     	 fi
  ;;
  stop)
    kill -s QUIT $(cat $NPF)
						
    if [ $? -eq 0 ]
    then
    echo "nginx is stopping!! "
    fi
  ;;
  restart)
    $0 stop
    $0 start
  ;;
  reload)
    kill -s HUP $(cat $NPF)
    if [ $? -eq 0 ]
    then
      echo "nginx config file is reload! "
    fi
  ;;
  *)
    echo "Usage: $0 {start|stop|restart|reload}"
    exit 1
esac
exit 0
(这里要注意:脚本开始必须有  # chkconfig: xx xx xx,分别代表启动级别,启动序号和退出序号;否则就不能以init方式添加并设置开机自启)

2)设置可执行权限,添加服务并设置开机自启

chmod +x /etc/init.d/nginx

chkconfig --add nginx

chkconfig --level 35 nginx on

3)说明:
和centos6版本一样,服务的启动脚本都在/etc/rc.d/init.d/目录下,并且可以通过命令查询服务列表:chkconfig --list
通过前面操作,在/etc/init.d/和/etc/rc.d/init.d/目录下都有了nginx这个脚本;但是据我理解,/etc/init.d/目录下一般放置服务开关程序(例如服务启动脚本),可以直接手动开启、关闭或者重启服务;
而在/etc/rc.d/init.d/目录下一般放置的是开机时自动管理服务的程序;比如执行chkconfig --add nginx,就可以看到这个目录下新增了nginx脚本;然后再执行chkconfig --level 35 nginx on,就可以看到在/etc/rc.d/rc3.d和/etc/rc.d/rc5.d目录下分别新增了软连接文件,表示在3 5级别下开机自启nginx服务;

二、通过systemctl添加服务

凡是通过rpm包安装的服务,几乎都可以使用如下方式启动服务:

/etc/init.d/servername start
service start servername
systemctl start servername
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值