2017-04-21 79 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是否闪烁?如果在第一次运行脚本时添加一个附加到文件的小片段? –