平台:树莓派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、服务生成:

  1. cp /home/pi/Other/ruoyiAdmin.sh /etc/init.d/ # 复制文件到启动文件夹下
  2. chmod +x /etc/init.d/ruoyiAdmin.sh # 修改文件为可执行文件
  3. sudo systemctl enable ruoyiAdmin.sh # 开机自启(树莓派3B及其他带“systemctl”的linux)
    
    /lib/systemd/systemd-sysv-install enable ruoyiAdmin.sh # 开机自启(树莓派0)

其他:

  1. 这里使用ruoyi框架作为展示。(ruoyi框架比较大型,在小嵌入式运行要预热10分钟~~)
  2. 如果头部不插入info会报一些错误,也有一劳永逸的解决方案(参考1里)。
  3. “Required-Start:    $local_fs $network $mysql”的意思是等文件服务、网络、mysql启动后才开始运行
  4. 树莓派zero会出现这个帖子说的问题二(树莓派在配置开机启动服务时候遇到的问题_Windy_Z的博客-CSDN博客
  5. 解决方案和本文一样,在(Raspbian Buster - missing insserv ? - Raspberry Pi Forums)的最后一层
  6. 推荐使用docker实现服务
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐