Notion Blog
技术分享1 分钟阅读

Debian系统设置开机自启服务,并纳入service进行管理

在Linux Debian系统中,有时候我们需要设置某些脚本在开机时自动启动,并希望这些脚本能够像系统服务一样被管理。为了实现这一目标。下面我将详细介绍如何在Debian系统中设置脚本开机自启并纳入service进行管理。

编写开机自启脚本脚本位置/etc/init.d目录下

新建脚本名称为 frpc

#!/bin/sh
# chkconfig: - 99 99
# description: frpc service
# processname: frpc


start() {
  echo -n $"Starting $DESC: "
  # 执行本命令
  /home/frp/run.sh
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "OK" || echo "FAILED"
  return $RETVAL
}

stop() {
  echo -n $"Stopping $DESC: "
  killall frpc
  RETVAL=$?
  [ $RETVAL -eq 0 ] && echo "OK" || echo "FAILED"
  return $RETVAL
}

restart() {
  stop
  start
}

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

exit 0

以下是脚本的详细解释:

#!/bin/sh:告诉系统使用shell(在这里是bash)来执行此脚本。
# chkconfig: - 99 99:这行是chkconfig命令的配置,用于设置服务在系统启动时自动运行的级别。- 表示所有级别都禁用,99表示服务在系统启动时运行级别最高(通常为多用户模式),99表示即使在关机状态下也运行。
description: frpc service:描述了服务的作用,即frpc服务。
processname: frpc:指定服务进程名,便于管理。
start()、stop() 和 restart() 函数:定义了服务的启动、停止和重启操作。
start():尝试执行 /home/frp/run.sh,这是frpc的实际启动命令,然后检查返回值,如果成功(返回值为0),输出"OK",否则输出"FAILED"。
stop():发送SIGTERM信号给frpc进程并检查返回值,如果成功输出"OK",否则输出"FAILED"。
restart():先调用stop()停止服务,再调用start()启动服务。
case "$1" in:根据传入的第一个参数(通常是启动、停止或重启命令)执行相应的函数。
):如果传入的参数不是start、stop或restart,输出错误信息并退出(exit 1)。
esac:结束case语句块。
exit 0:脚本执行完毕,正常退出,返回码为0,表示成功。

为脚本添加执行权限

chmod +x frpc

启用服务并在系统启动时运行:

update-rc.d frpc defaults

启动服务命令

service frpc start

停止命令

service frpc stop

重启命令

service frpc resta

有关使用上的问题,欢迎您在底部评论区留言,一起交流~

读者评论

评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。

0/1500

暂无评论,欢迎抢沙发。