Ser*_*AAV 2 terminal sudo startup raspberry-pi raspberry-pi3
我尝试在启动时使用终端以 sudo 身份运行可执行文件,但遇到一些问题。我在其他答案中找不到解决方案,所以我打开了这个。我使用的是 Raspberry Pi 3 B+ 以及 Raspbian Stretch 桌面版和从 Raspberry Pi 官方网站下载的推荐软件。
我有一个需要使用 sudo 运行的可执行文件(我使用 Pigpio 库通过 SPI 与另一个硬件进行通信,如果我不使用 sudo 运行该可执行文件,则 Pigpio 将无法工作)。我想要实现的是,当 Pi 完成启动图形界面时,它将运行 LXTerminal 并执行“sudo home/pi/myfolder/myprogram”。
我试过了:
sudo nano ~/.config/autostart/myprogram.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=myprogram
Exec=lxterminal -e "sudo /home/pi/myfolder/myprogram"
Terminal=true
sudo chmod a+r ~/.config/autostart/myprogram.desktop
Run Code Online (Sandbox Code Playgroud)
还尝试过:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
lxterminal --command="sudo /home/pi/myfolder/myprogram"
Run Code Online (Sandbox Code Playgroud)
这两种方法都在启动时打开了lxterminal,但没有执行我的程序。谁能帮我吗?
我找到了解决方案,所以我将其发布在这里,以防其他人需要它。如果它已经存在于附近的其他地方,请随意将其标记为重复。对我有用的解决方案是这样的:
sudo nano ~/.config/autostart/myprogram.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=myprogram
Exec=lxterminal -e bash -c 'sudo /home/pi/myfolder/myprogram;$SHELL'
Terminal=true
sudo chmod a+r ~/.config/autostart/myprogram.desktop
Run Code Online (Sandbox Code Playgroud)
$SHELL 使终端在 myprogram 结束执行后保持打开状态。如果您不需要此功能,只需排除上面代码中的 ;$SHELL 部分即可。
| 归档时间: |
|
| 查看次数: |
5179 次 |
| 最近记录: |