技术分享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 中的页面底部(与正文同页,便于管理)。
暂无评论,欢迎抢沙发。