Linux 自定义服务 注册自启

文章讲述了如何在Linux系统中创建自定义服务,包括服务文件的编写(如/etc/init.d/zyz),使用模板定义程序名、执行文件、选项等。同时,解释了锁文件的作用,如/var/lock/subsys用于服务状态跟踪。此外,提到了chkconfig用于管理服务启动级别和优先级,例如#chkconfig:23455525指示服务在运行级别2、3、4、5启动,并定义了启动和停止的优先级。
摘要由CSDN通过智能技术生成

Linux 自定义服务

linux 服务

服务文件存放位置为
/etc/rc.d/init.d
/etc/init.d/

两者相同
在任一文件目录下编写文件都会互相同步

直接编写服务文件

vi  /etc/init.d/zyz

模板参考

#!/bin/bash
#Create by:zhangyongze
#为什么不问问神奇的海螺呢丶
# chkconfig: 2345 55 25
# description: Prometheus-server
#

RETVAL=0
#程序名
PROG="prometheus"  
#程序执行文件
EXEC="/monitor/prometheus-2.39.1.linux-amd64/prometheus"
#锁文件
LOCKFILE="/var/lock/subsys/$PROG"
#程序执行参数
OPTIONS="--web.listen-address=:7746  --config.file=/monitor/prometheus-2.39.1.linux-amd64/prometheus.yml"

# Source function library.
if [ -f /etc/rc.d/init.d/functions ]; then
  . /etc/rc.d/init.d/functions
else
  echo "/etc/rc.d/init.d/functions does not exist"
  exit 0
fi

start() {
  if [ -f $LOCKFILE ]
  then
    echo "$PROG is already running!"
  else
    echo -n "Starting $PROG: "
    nohup $EXEC $OPTIONS >/dev/null 2>&1 &
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch $LOCKFILE && success || failure
    echo
    return $RETVAL
  fi
}

stop() {
  echo -n "Stopping $PROG: "
  killproc $EXEC
  RETVAL=$?
  [ $RETVAL -eq 0 ] && rm -r $LOCKFILE && success || failure
  echo
}

restart ()
{
  stop
  sleep 1
  start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status $PROG
    ;;
  restart)
    restart
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
esac
exit $RETVAL


关于/var/lock/subsys

总的来说,系统关闭的过程(发出关闭信号,调用服务自身的进程)中会检查/var/lock/subsys下的文件,逐一关闭每个服务,如果某一运行的服务在/var/lock/subsys下没有相应的选项。在系统关闭的时候,会像杀死普通进程一样杀死这个服务。通过察看/etc/rc.d/init.d下的脚本,可以发现每个服务自己操纵时都会去查看/var/lock/subsys下相应的服务。

关于# chkconfig: 2345 55 25

将服务加入chkconfig管理时会根据服务文件设置启动级别
第一个参数,它告诉chkconf这个服务以什么样的运行级别开始。第二个参数,它指定的了启动的优先等级。最后一个参数,它指定了停止服务时,它拥有的优先级别。上面的这个实例中,它表示这个服务以2、3、4和5的级别开始,它的启动优先级为55,它的停止优先级是25。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为什么不问问神奇的海螺呢丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值