[英]How to let linux(raspberry) run python script when plugin power?
我有一個python腳本( namely /home/pi/x.py
)。 我嘗試了很多方法讓程序運行,例如:
#!/bin/bash
# /etc/init.d/mystart
### BEGIN INIT INFO
# Provides: Python
(我在想我在這里(提供:Python)嗎?)
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: my python initscript
# Description: no description
### END INIT INFO case "$1" in
start)
echo "Starting x.py "
/home/pi/x.py &
;;
stop)
echo "Stopping x.py"
#killall x.py
kill $(ps aux | grep -m 1 'python /home/pi/x.py' | awk '{ print $2 }')
;;
*)
echo "Usage: service x.py start|stop"
exit 1
;; esac exit 0
我已經從原始形式修改了此bash,並將其放入
/etc/inti.d/mystart
sudo chmod +x /etc/init.d/mystart
sudo update-rc.d mystart defaults
但是,當我嘗試執行以下操作時: sudo service mystart start
出現一些錯誤! [Unit mystart.service failed to load: No such file or directory.]
所以我在這里被封鎖了,我不知道如何在通電的情況下讓x.py運行
打開/ etc / profile
sudo nano /etc/profile
滾動到底部並添加以下行:
sudo python /home/pi/x.py
其中“ /home/pi/x.py”是腳本的絕對路徑。 鍵入“ Ctrl + X”退出,然后鍵入“ Y”保存,然后按兩次“ Enter”。 現在重新啟動並測試。 python腳本現在應該在啟動時運行
自動登錄設置(無需用戶干預即可執行腳本)
打開/ etc / inittab
須藤nano / etc / inittab
找到這條線
1:2345:重生:/ sbin / getty 115200 tty1
在行首添加#字符以禁用它,因此它看起來像
#1:2345:respawn:/ sbin / getty 115200 tty1
在該行下,添加以下內容:
1:2345:respawn:/ bin / login -f pi tty1 / dev / tty1 2>&1
其中“ pi”是用戶名。 鍵入“ Ctrl + X”退出,然后鍵入“ Y”保存,然后按兩次“ Enter”。 現在啟動時,raspberrypi將使用pi
用戶自動登錄並執行您的腳本
如果沒有/ etc / inittab怎么辦?
我假設您使用的是最新的Raspian圖片(jessie)。 這是基於Debian 8(jessie)更改了init系統的版本。 自動登錄解決方案已經在這里提到
來源: http : //www.raspberrypi-spy.co.uk/2015/02/how-to-autorun-a-python-script-on-raspberry-pi-boot/
我使用了crontab
並且效果很好
第1步:
sudo crontab -e
步驟2:填寫
@reboot python /home/pi/x.py &
步驟3:保存並重新啟動
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.