2017-04-21 113 views
3

對於長期問題的道歉,但我需要儘可能具體。尋找啓動Raspberry Pi/Linux的啓動時間

我正在創建一個項目,允許我使用遙控器控制攝像頭的功能。這個項目是從一個Python程序運行的,並將其輸出輸出到另一個程序chdkptp(這是允許我控制相機的程序)。前一陣子,我試圖弄清楚如何讓這個項目在啓動時啓動(這樣我就可以插入我的Raspberry Pi,並且無需桌面就可以正常工作)。我嘗試了不同的東西(如添加我想rc.local文件等命令),但最終將自動啓動,以

~/.config/autostart 

,這是什麼我做了該文件的內部:

[Desktop Entry] 
Encoding=UTF-8 
Name=Terminal autostart 
Comment=Start a terminal and boot remote_function.py piped into chdkptp.sh 
Exec=/usr/bin/lxterm -e 'cd chdkptp-r735 && ./remote_function.py|./chdkptp.sh' 

基本上,這打開lxterm並執行我需要啓動我的python程序,它的輸出管道chdkptp命令,這個工程。

但我的問題是這樣的: 我相信我可以在不同的位置不小心開始了我的Python程序,而試圖找出我需要做,因爲我的Python程序啓動後兩次。我知道這一點,因爲當程序啓動並運行時,我有一個LED閃光燈,但它閃爍兩次,我無法弄清楚我的程序在哪裏啓動。我該如何解決這個問題?

我可能已經有一個答案,但不知道這意味着什麼......我輸入這個命令由有人建議:

ps -ax | grep 'remote_function.py' 

,並得到這樣的響應:

875 ?  S  0:00 xterm -class UXTerm -title uxterm -u8 -e cd chdkptp-r735 && ./remote_function.py|./chdkptp.sh 
1026 pts/0 Ss+ 0:00 bash -c cd chdkptp-r735 && ./remote_function.py|./chdkptp.sh 
1028 pts/0 S+  0:00 python ./remote_function.py 
2169 pts/1 S+  0:00 grep --color=auto remote_function.py 

是這個答案?如果是這樣,那究竟是什麼意思?在我的python程序開始時,它與shebang有什麼關係?談到這一點,我是一個新手。如果那不是答案,我該如何去尋找我的程序在啓動時啓動的其他位置?

的家當是這樣的,以供參考:

#!/usr/bin/env python 
+0

首先,我想問一下明顯的問題。有沒有什麼辦法可以讓您的編程成爲LED閃爍的罪魁禍首?其次,您是否檢查過PID列表以查看是否有兩個程序正在運行? – Zak

+0

@Zak我已經測試過簡單地執行python程序而不是啓動時,當我這樣做時,LED只閃爍一次,導致我相信這是一個啓動問題。道歉,如果這是一個愚蠢的問題,但我如何去檢查PID如果兩個實例正在運行? – smartzer

+0

你可以使用'top' - 我個人使用'htop',因爲它更加簡單:'sudo apt-get install htop'然後發出命令'htop' - 你可以按進程名稱.. – Zak

回答

1

[已解決]

我想通了。

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=59285

我已經連接到我的VNC樹莓派,我與我的remote_python自動啓動,啓動VNC服務器,這樣我可以遠程在我的PI而不需要監測沿有一個自動啓動命令。事實證明,VNC服務器存在一些錯誤,它會啓動兩次。當然。我使用的是x11 VNC服務器,現在只能啓動一次:)

0

你這樣做,事實上,在運行你的Python腳本兩個過程。

找出什麼開始了第二可能不是很有趣,但因爲你可以看到,第二個是開始python ./remote_function.py那麼你有兩條線索:

首先,爲了使這種^工作,它必須與您的remote_function.py位於同一個文件夾中 - 也許您還記得那些以它自己的方式啓動它的東西的修補程序?其次,你可以通過sudo grep 'python ./remote_function.py' ~找到包含^的文件的位置 - 但由於它使用./來調用它 - 它應該是非常明顯的(除非你有散落的文件的副本 -

+0

是的,試圖找出什麼是開始我的程序是非常令人沮喪的:(但是當我打電話'sudo grep'python ./remote_function.py'' 〜我得到的是:'grep/home/pi:是一個目錄' – smartzer

+0

如果你看[這裏](http://imgur.com/7vjkCQQ),你可以在圖片的底部看到我跑了htop看到這兩個實例的PID程序的PID,它們看起來都是相同的,這是否意味着什麼? – smartzer

+0

這是一個奇怪的觸摸 - 理智檢查怎麼樣?如果你禁用啓動運行,LED是否閃爍?如果在第一次運行腳本時添加一個附加到文件的小片段? –