4、ベリーパイでプログラムを自己起動に設定する


テストスクリプトの作成

  • piユーザの下にテストフォルダを作成する:mkdir test0226
  • .
  • cd test0226shスクリプトファイルを作成し、以下の内容をスクリプトに書き、パスが正しいかどうかを注意します.
  • #!/bin/sh
    
    touch /home/pi/test0226/testboot.txt
    
    chmod 777 /home/pi/test0226/testboot.txt
    
    echo "hello pi~" >> /home/pi/test0226/testboot.txt
    
  • スクリプトファイルへの実行権限の追加:chmod 777 testboot.sh
  • スクリプト機能のテスト:./testboot.sh
  • 次のように設定します.

    向rclocalファイル起動コードの追加

  • /etc/rcを開く.localファイル
  • 開いているテキストにexit 0が見つかり、それ以前のコードは起動時に
  • が実行されます.
  • su p -c "exec /home/pi/test0226/testboot.sh"
  • を追加
  • が正常に実行すると、現在のディレクトリ(pi)にtestbootが生成される.txtのテキストファイル
  • suコマンドは、piユーザの下でこのコマンドを実行することを指定し、-cは、このコマンドを実行した後に元のユーザに戻ることを示す.

  • 注意:システムの起動時にこのコードを実行する際にはrootのユーザ権限が使用する、piのユーザを指定しないと、権限の問題でスクリプトの実行に失敗する可能性がある.

    プログラムをサービスとして起動


    /etc/init.d/ディレクトリの下にサービススクリプトファイルを新規作成します.スクリプトファイルの内容を編集するには、次の手順に従います.
    #!/bin/sh
    #/etc/init.d/testboot
    ### BEGIN INIT INFO
    # Provides:testboot
    # Required-Start:$remote_fs $syslog
    # Required-Stop:$remote_fs $syslog
    # Default-Start:2 3 4 5
    # Default-Stop:0 1 6
    # Short-Description: testboot
    # Description: This service is used to start my applaction
    ### END INIT INFO
    case "$1" in
        start)
            echo "start your app here."
            su pi -c "exec ~/testboot.sh"
            ;;
        stop)
            echo "stop your app here."
            ;;
        *)
            echo "Usage: service testboot start|stop"
            exit 1
            ;;
    esac
    exit 0
    
    

    保存終了、設定スクリプト実行可能権限:sudo chmod 777 /etc/init.d/testboot.サービスとして起動自動ロード:sudo update-rc.d testboot defaultsに設定.テストを再起動します.