.bashrc 中的命令被执行两次

.bashrc 中的命令被执行两次

我用来.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

相关内容