我用来.bashrc
在系统启动时执行 python 脚本:
sudo -u pi python3 /path/to/script.py
然后我添加@lxterminal
到文件/etc/xdg/lxsession/LXDE-pi/autostart
以确保在启动时打开终端窗口。
然而,当我用来ps aux
检查所有进度时,我发现script.py
系统中有两个进程在运行,即使我只在.bashrc
.同时运行两个相同的脚本给我带来了麻烦。任何帮助表示赞赏。
答案1
你在这里有一些误解。中的任何命令.bashrc
都会运行每次启动新的交互式非登录 shell 时。这意味着每次打开新终端时,它们都会再次运行。每次你跑bash
,他们就会再次跑。
下一个问题是,除非您将其配置sudo
为允许无密码执行,否则您的命令甚至不会运行。它会挂起,等待密码。你还需要吗sudo
?不是pi
你自己的用户名吗?您中的所有命令都.bashrc
将以您的用户身份运行,您无需调用sudo
它们。
最后,启动终端是无关紧要的。该命令不会在该终端中运行,终端只会坐在那里。
您要做的就是添加此命令/etc/crontab
并将其设置为在重新启动时以用户身份运行pi
。运行sudo nano /etc/crontab
并将此行添加到文件中:
@reboot pi python3 /path/to/script.py
python3 /path/to/script.py
这将告诉您的系统在每次重新启动时以用户身份运行该命令pi
。