运行 终端在启动时以 sudo 执行命令

Run Terminal at startup and execute command as sudo

我正在尝试 运行 一个可执行文件作为 sudo 在启动时使用终端,但我遇到了一些问题。我在其他答案中找不到解决方案,所以我打开了这个。我正在使用 Raspberry Pi 3 B+ 和 Raspbian Stretch with desktop 以及从官方 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

也尝试过:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

lxterminal --command="sudo /home/pi/myfolder/myprogram"

这两种方法都在启动时打开了lxterminal,但没有执行我的程序。 谁能帮帮我?

我找到了解决方案,所以我将 post 放在这里以防其他人需要它。如果它已经存在于这里的其他地方,请随意将其标记为重复。 对我有用的解决方案是:

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

$SHELL 使终端在 myprogram 结束执行后保持打开状态。如果您不需要此功能,只需排除上面代码中的 ;$SHELL 部分即可。