平台:树莓派3B
系统:树莓派buster
参考1:[开机启动]解决insserv: warning: script '服务名' missing LSB tags and overrides - 纪念流失鼠标之上的青春 (lostphp.com)
参考2:linux将可执行文件注册成服务 - 简书 (jianshu.com)
1、文件创建:
#!/bin/bash
### BEGIN INIT INFO
# Provides: conmi
# Required-Start: $local_fs $network $mysql
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ruoyiAdmin service
# Description: ruoyiAdmin service daemon
### END INIT INFO
SERVERNAME="ruoyi-admin"
start()
{
sudo java -Xms512m -Xmx800m -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar /home/pi/Other/ruoyi-admin.jar &
exit 0;
}
stop()
{
echo "stop $SERVERNAME"
killall $SERVERNAME
echo "stop $SERVERNAME ok!"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "usage: $0 start|stop|restart"
exit 0;
esac
exit
2、服务生成:
-
cp /home/pi/Other/ruoyiAdmin.sh /etc/init.d/ # 复制文件到启动文件夹下
-
chmod +x /etc/init.d/ruoyiAdmin.sh # 修改文件为可执行文件
-
sudo systemctl enable ruoyiAdmin.sh # 开机自启(树莓派3B及其他带“systemctl”的linux) /lib/systemd/systemd-sysv-install enable ruoyiAdmin.sh # 开机自启(树莓派0)
其他:
- 这里使用ruoyi框架作为展示。(ruoyi框架比较大型,在小嵌入式运行要预热10分钟~~)
- 如果头部不插入info会报一些错误,也有一劳永逸的解决方案(参考1里)。
- “Required-Start: $local_fs $network $mysql”的意思是等文件服务、网络、mysql启动后才开始运行
- 树莓派zero会出现这个帖子说的问题二(树莓派在配置开机启动服务时候遇到的问题_Windy_Z的博客-CSDN博客)
- 解决方案和本文一样,在(Raspbian Buster - missing insserv ? - Raspberry Pi Forums)的最后一层
- 推荐使用docker实现服务