【问题标题】:Run Terminal at startup and execute command as sudo在启动时运行终端并以 sudo 执行命令
【发布时间】:2019-10-21 09:38:54
【问题描述】:

我正在尝试在启动时使用终端将可执行文件作为 sudo 运行,但我遇到了一些问题。我在其他答案中找不到解决方案,所以我打开了这个。我正在使用带有桌面版 Raspbian Stretch 的 Raspberry Pi 3 B+,以及从 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,但没有执行我的程序。 谁能帮帮我?

【问题讨论】:

    标签: terminal raspberry-pi raspberry-pi3 startup sudo


    【解决方案1】:

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

    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 部分即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 2018-07-25
      • 1970-01-01
      • 2016-10-06
      • 2012-03-29
      • 1970-01-01
      • 2010-11-19
      相关资源
      最近更新 更多