簡體   English   中英

在啟動時運行終端並以 sudo 執行命令

[英]Run Terminal at startup and execute command as sudo

我正在嘗試在啟動時使用終端將可執行文件作為 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,但沒有執行我的程序。 誰能幫我嗎?

我找到了解決方案,所以我會把它貼在這里以防其他人需要它。 如果它已經存在於這里的其他地方,請隨意將其標記為重復。 對我有用的解決方案是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM