树莓派 实现脚本程序自启动

一、前言

本文程序自启动方法是:将脚本程序作为服务启动。

二、自启动配置

1. 创建测试文件

  • 如果已经有了自启动的目标文件,请跳过这一步,到 "新建服务脚本文件"

  • /home/pi 目录下,创建测试文件 test_self_start.sh

    #!/bin/sh
    touch /home/pi/test_hp.txt
    chmod 777 /home/pi/test_hp.txt
    echo "Hello Pi" >> /home/pi/test_hp.txt
    

2. 新建服务脚本文件

在/etc/init.d/目录下新建一个服务脚本文件。在终端输入并回车

pi@raspberry:~ $ sudo vim /etc/init.d/test_self_start

3. 输入内容

在空白文件中输入以下内容,其中:

  • "test_self_start" 是我建的服务文件名,请根据需求自行更改;
  • 第 15 行请改为:su pi -c "exec 你的脚本文件的绝对路径"
  • 里面所有的 echo 语句,都是对自启动服务的启动/暂停等功能的说明,可根据需求自行更改。
#!/bin/sh
#/etc/init.d/test_self_start
### BEGIN INIT INFO
# Provides:aly-pi-net
# Required-Start:$remote_fs $syslog
# Required-Stop:$remote_fs $syslog
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description: test self_start
# Description: This service is used to start my applaction
### END INIT INFO
case "$1" in
     start)
     echo "start test_self_start."
     su pi -c "exec /home/pi/test_self_start.sh"
     ;;
     stop)
     echo "stop test_self_start."
     ;;
     *)
     echo "Usage: service test_self_start start|stop"
     exit 1
     ;;
esac
exit 0

4. 保存退出

按下 ESC ,再输入 :wq 保存退出

5. 设置脚本可执行权限:

pi@raspberry:~ $ sudo chmod 777 /etc/init.d/test_self_start

6. 开机自动加载

最后将该脚本作为服务设置开机自动加载:

pi@raspberry:~ $ sudo update-rc.d test_self_start defaults

三、成功测试

  • 如果以自定义的目标文件实现自启动,请观察结果。
  • 对于本文测试脚本 test_self_start.sh 来说:
    • 保证 /home/pi 文件下,没有 test_hp.txt 文件
    • sudo reboot 重启
    • 重启后查看在 /home/pi 目录下,是否有 echo 重定向文件 test_sh.txt ,检查内容是否为 Hello Pi
posted @ 2020-03-10 20:33  Yogile  阅读(2907)  评论(0编辑  收藏  举报