最近自己開發的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
留言列表