日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

ubuntu開機(jī)后ROS程序自啟動(dòng)問題_Linux

作者:后廠村路蔡徐坤 ? 更新時(shí)間: 2023-01-14 編程語言

平時(shí)有用到一些機(jī)器人或者帶有ubuntu系統(tǒng)的移動(dòng)設(shè)備,比如NVIDIA TX2,NVIDIA XAVIA, JetsonNANO,秒算,工控機(jī)等等,寫好了程序后,如果想要運(yùn)行,開機(jī)之后還得連接鍵盤鼠標(biāo),顯示器,等程序運(yùn)行之后還需要重新拔掉鍵盤鼠標(biāo)顯示器等等,步驟繁瑣是一部分,還有可能因?yàn)榉磻?yīng)不及時(shí)發(fā)生危險(xiǎn),尤其對(duì)于無人機(jī)等,因此需要配置程序開機(jī)自啟動(dòng)。

一、ubuntu免密開機(jī)

路徑:系統(tǒng)設(shè)置–用戶設(shè)置

二、程序腳本啟動(dòng)

可以創(chuàng)建test.sh文件,將程序所需要運(yùn)行的指令全部加入sh文件中。

例如:

#! /bin/bash
gnome-terminal -- bash -c "cd /home/xxx/Desktop/CSDN/test_demo/build;mkdir helloworld" & sleep 5
wait
exit 0

說明:

  • gnome-terminal --bash -c:會(huì)打開一個(gè)新的bash終端并執(zhí)行c后面的語句。linux bash是一個(gè)命令處理器,通常運(yùn)行于文本窗口中,并能執(zhí)行用戶直接輸入的命令;Bash還能從文件中讀取命令,這樣的文件稱為腳本。語句用’;;’,隔開,最后的sleep 5表示延遲5秒退出,這樣就可以在新的終端看到運(yùn)行效果,添加這個(gè)延時(shí)是為了方便驗(yàn)證是否啟動(dòng)程序或者節(jié)點(diǎn)
  • 如果是ubuntu 18.04以前的系統(tǒng):gnome-terminal -x bash -c;ubuntu18.04以后的系統(tǒng)輸入:gnome-terminal – bash -c
  • gnome-terminal --tab:同一終端窗口中打開一個(gè)新選項(xiàng)卡。而是打開一個(gè)新窗口。

三、文件賦予權(quán)限

chmod指令詳細(xì)說明,請(qǐng)參考:【ubuntu】chmod命令

chmod 777 test.sh

四、開機(jī)啟動(dòng)項(xiàng)管理器

gnome-session-properties是ubuntu的開機(jī)啟動(dòng)項(xiàng)管理器。如果之前編寫的sh文件,不需要sudo權(quán)限,即可將sh文件加入gnome-session-properties自啟動(dòng)管理器中即可。

終端輸入:gnome-session-properties

添加執(zhí)行項(xiàng)目。其中command為你編寫的腳本路徑,name和comment可以隨意配置。

五、需要SUDO權(quán)限的腳本開機(jī)自啟動(dòng)

有的時(shí)候,我們的設(shè)備連接外部設(shè)備,需要打開串口,甚至是gpio口,這需要使用到權(quán)限,串口可以通過添加rules來設(shè)置為普通用戶,但是之前在DJIManifold產(chǎn)品上需要程序?qū)PIO口進(jìn)行設(shè)置,這個(gè)時(shí)候就需要用到sudo權(quán)限了,因?yàn)樵谶M(jìn)入sudo權(quán)限需要輸入密碼,這就不好完成開機(jī)自啟動(dòng)。

此時(shí)就需要利用shell腳本自動(dòng)輸入密碼

指令:echo 'password' | sudo -S "./test.sh"

后續(xù)還需要做三步操作:

給文件運(yùn)行權(quán)限

sudo chmod 777 start.sh

設(shè)置腳本自啟動(dòng)

gnome-session-properties

保持gnome-terminal窗口執(zhí)行后不立刻關(guān)閉

在測(cè)試中會(huì)發(fā)現(xiàn),gnome-terminal命令執(zhí)行完會(huì)一閃而過,自行關(guān)閉。需要添加read命令,read命令是等待用戶按下回車后使窗口關(guān)閉。

gnome-terminal -x bash -c "echo \"OK now\"; read"  

總結(jié)

原文鏈接:https://blog.csdn.net/zeye5731/article/details/126142233

欄目分類
最近更新