樹莓派 實現腳本程序自啟動


一、前言

本文程序自啟動方法是:將腳本程序作為服務啟動。

二、自啟動配置

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM