找出 Raspberry 启动时启动的内容 Pi/Linux

Finding out what boots on startup for 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 程序启动了两次 。我知道这一点是因为当程序启动并且 运行ning 时,我有一个 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 有什么关系吗?说到这一点,我是个新手。如果这不是答案,我该如何找到我的程序在启动时从其他什么地方开始?

shebang是这样的,供参考:

#!/usr/bin/env python

事实上,您确实有两个进程 运行 您的 python 脚本。

找出第二个开始的原因可能不是很有趣,但由于您可以看到第二个以 python ./remote_function.py 开始,因此您有两条线索:

首先,为了让它 ^ 工作,它必须与你的 remote_function.py 位于同一个文件夹中 - 也许你还记得以这种 ^ 方式自行启动它的东西?

其次,您可以通过 sudo grep 'python ./remote_function.py' ~ 找到保存该文件的位置^ - 但由于它使用 ./ 调用它 - 它应该非常明显(除非你散布着该文件的副本 - 可能是这种情况。

[已解决]

我想通了。

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

我一直在使用 VNC 连接到我的 raspberry pi,并且我有一个自动启动命令和我的 remote_python 自动启动来启动 VNC 服务器,这样我就可以远程访问我的 pi 而不需要监视器。事实证明,VNC 服务器存在某种错误,它会启动两次。当然。我正在使用 x11 VNC 服务器,现在只启动一次 :)