(一)
首先寫個(gè)你得有個(gè)需要運(yùn)行的python腳本
我這里是幾個(gè)自己的程序(注意的的py程序也需要chmod進(jìn)行777權(quán)限操作,不然會(huì)運(yùn)行失?。?br>
文件保存在/home/pi/share/ip_acquire.py
一 首先給你的py文件增加權(quán)限
chmod 777 /home/pi/share/ip_acquire.py
二 開機(jī)啟動(dòng)腳本
保存腳本為/etc/init.d/my_start文件
#!/bin/bash
case "$1" in
start):
echo "Starting app"
nohup python3 /home/pi/share/ip_acquire.py &
;;
stop):
echo "to"
#kill $( ps aux | grep -m 1 'python3 /home/pi/share/ip_acquire.py' | awk '{ print $2 }') ;; *)
echo "Usage: service start_tool start|stop"
exit 1 ;;
esac
exit 0
三 設(shè)置python腳本開機(jī)啟動(dòng)
sudo chmod 777 /etc/init.d/my_start
這樣啟動(dòng)改腳本用service 命令就可以,在使用該指令前,你需要重啟一下系統(tǒng),不然會(huì)提示沒有該服務(wù)
sudo service my_start start#啟動(dòng)
sudo service my_start stop#停止
最后設(shè)置開機(jī)啟動(dòng)就好了
sudo update-rc.d my_start defaults
這樣就完工了,重啟樹莓派就會(huì)程序自動(dòng)跑起來了,停止用
sudo service my_start stop就行
在這里需要注意:
因?yàn)檫@個(gè)開機(jī)自啟是在機(jī)器還沒完成初始化進(jìn)程的時(shí)候就啟動(dòng)的,所以在你的python程序的開頭最好加入一個(gè)time.sleep函數(shù)休眠20秒,強(qiáng)迫程序在系統(tǒng)初始化成功后進(jìn)行運(yùn)行。不然可能會(huì)因?yàn)橄到y(tǒng)還沒準(zhǔn)備好你的程序就強(qiáng)行運(yùn)行而導(dǎo)致啟動(dòng)失敗。
(二)
編輯rc.local文件:
在你的樹莓派上,選擇一個(gè)文本編輯器編輯/etc/rc.local文件。你必須使用root權(quán)限編輯,例如:
sudo vim /etc/rc.local
在注釋后面添加命令,但是要保證exit 0這行代碼在最后,然后保存文件退出。
如果你的命令需要長時(shí)間運(yùn)行(例如死循環(huán))或者運(yùn)行后不能退出,那么你必須確保在命令的最后添加“&”符號讓命令運(yùn)行在其它進(jìn)程,例如:
python /home/pi/myscript.py &
否則,這個(gè)腳本將無法結(jié)束,樹莓派就無法啟動(dòng)。這個(gè)“&”符號允許命令運(yùn)行在一個(gè)指定的進(jìn)程中,然后繼續(xù)運(yùn)行啟動(dòng)進(jìn)程。
另外,確保文件名使用絕對路徑,而不是相對于你的home目錄的相對路徑。例如:使用/home/pi/myscript.py而不是用myscript.py。
樹莓派怎開機(jī)就執(zhí)行一條命令?
最簡單的方法是直接添加到/etc/rc.local文件的exit語句前。會(huì)寫啟動(dòng)腳本就寫一個(gè)放到init.d,再創(chuàng)建個(gè)軟鏈接到rc.2也可以用第三方啟動(dòng)管理軟件,但是不推薦。
為何我加在/etc/rclocal中的腳本不可以開機(jī)自啟動(dòng)
打開gpedit.msc
計(jì)算配置--windows 設(shè)置--腳本(啟動(dòng)/關(guān)機(jī))--
雙擊啟動(dòng)---添加rc.local文件 保存 退出 .
也可以把rc.local文件保存在
C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup這里,
再添加rc.local文件 保存 退出 .
(三)
這個(gè)方式不用修改 rc.local 文件。機(jī)制上類似于 Windows 的“開始”菜單中的“啟動(dòng)”菜單。方法如下:
在 /home/pi/.config 下創(chuàng)建一個(gè)文件夾,名稱為 autostart,并在該文件夾下創(chuàng)建一個(gè)xxx.desktop文件(文件名以.desktop結(jié)尾,前面可以自定義),文件內(nèi)容如下:
[Desktop Entry]
Name=example
Comment=My Python Program
Exec=python /home/pi/example.py
Icon=/home/pi/example.png
Terminal=false
MultipleArgs=false
Type=Application
Categories=Application;Development;
StartupNotify=true
以上 Name、Comment、Icon 可以自定,分別表示這個(gè)啟動(dòng)項(xiàng)目的名稱、備注以及顯示的圖標(biāo)。Exec 表示調(diào)用的指令,和在終端輸入運(yùn)行腳本的指令格式一致。