close

最近自己開發的python網站要上線了,放在raspberry pi上面,但是執行啟動django需要到console下指令

而我又不想接上螢幕運行後再把螢幕拔掉,所以找了用ssh連線後又可以將django運行在背景的方法

流程是先用ssh連線後重新開機,而重新開機時raspberry會自動執行django

step1:

先將你的django專案放在raspberry pi 上

step2:

進到crontab裡面修改

sudo crontab -e

step3:

在最下面加上(python3表示python3.4或3.5.1,如果你的python是2 則改成python),project為你的django專案,第二個參數是manage.py的位置,為什麼要寫絕對路徑呢?

是因為當我們raspberry pi開機的時候是使用root登入如果你的路徑是寫成~/project/manage.py換成絕對路徑就變成了/home/project/manage.py,但是root下面並沒有放入

我們使用者的專案,所以這邊需要指定為絕對路徑/home/pi/project/manage.py,最後一個參數為ip,&為設定在背景執行

@reboot python3 /home/pi/project/manage.py runserver 192.168.0.100:80 &

當然如果你有什麼DB或服務希望開機就執行的也可以寫在裡面,這邊用的方式與raspberry pi 開機登入後執行bash script不同

差別在於修改~/.bashrc是必須在使用者登入後,而這個方法是在開機的時候再另外開一個console,並且把指令下在裡面

step4:

重新開機,並用ssh重新連線

sudo reboot

step5:

檢查manage.py是否正常的連線

ps aux | grep /home/pi/project/manage.py  或者 ps -ef | grep manage.py

可以看到第一個執行runserver的就是我們的python3,再來是python主程式的執行程式,最後是我們執行grep的程式

(如果你只有看到grep的程式表示你沒有設定成功喔)

因為每次重開機的時候這些執行序並不會一起關機,所以我們需要手動刪除,以上面這個例子來說要刪除django程式

sudo kill 454

 

 

 

arrow
arrow

    肥宅 發表在 痞客邦 留言(0) 人氣()