設置Raspberry Pi開機啓動

樹莓派程序開機啓動設置。python

關於開機啓動,我在網上找的一個教程,而後照着作了一次。bash

須要開機啓動的程序是本身寫的 個人是一個數據傳輸的程序,名字爲 trans.pyide

 

開機啓動腳本,保存在/etc/init.d目錄下面:測試

#!/bin/bashui

# /etc/init.d/transspa

### BEGIN INIT INFO.net

# Provides: xiaofeng命令行

# Required-Start: $remote_fs $syslogorm

# Required-Stop: $remote_fs $syslog教程

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: trans initscript

# Description: transform data

### END INIT INFO

 

case "$1" in

    start)

        echo "Starting trans"

        /scream/trans.py &

        ;;

    stop)

        echo "Stopping trans"

        #kill all trans.py

        kill $(ps aux | grep -m 1 'python /scream/trans.py' | awk '{ print $2 }')

        ;;

    *)

        echo "Usage: service ledblink start|stop"

        exit 1

        ;;

esac

exit 0

 

這個是原來的腳本。我把紅色標記的地方換成了個人程序的信息,而後就OK了。我腳本 的保存的名字是trans  

修改權限:sudo chmod +x /etc/init.d/trans

能夠經過service命令測試一下

 

sudo service trans start#啓動

sudo service trans stop#中止

 

我開始時測試service命令出錯,說找不到文件,應該是權限的問題,後來我又從新作了一邊,莫名其妙得好了。

 

最後設置開機啓動:sudo update-rc.d trans defaults

刪除開機啓動:update-rc.d -f trans remove

參照文章的出處:

https://www.embbnux.com/2015/04/12/raspberry_pi_setting_python_script_start_on_boot/

Update-rc.d 命令的用法 http://www.52pi.net/?p=255

關於腳本語言的case的用法:

case 字符串 in

模式1) command;;

模式2) command;;

......

Esac

Case語句是多分支語句,它按照「)」左邊的模式對字符串值的匹配來執行相應的命令,匹配是由上而下地進行,老是執行首先匹配到的模式對應的命令表。若是,模式中的每個都匹配不到,則什麼也不執行,一邊後再後面放一個*),表示以上都不匹配的任意字符串。「;;」表示該模式對應的命令部分的程序。

 

$#:表示保存程序命令行參數的數目。

$?:表示保存前一個命令的返回值。

$0:表示列出當前的程序名

$*:表示以「$1 $2...」的形式保存全部輸入的命令行參數

$@:表示以「$1」「$2」...的形式保存全部輸入的命令行參數。

$n:$1爲命令行的第一個參數,$2爲命令行的第二個攢書,一次類推。

 

權限設置:

chmod u+x name 表示只有本身能夠執行

chmod ug+x name 表示本身以及同一羣能夠執行。

chmod +x 表示全部人均可以執行

相關文章
相關標籤/搜索