網站首頁 編程語言 正文
平時有用到一些機器人或者帶有ubuntu系統的移動設備,比如NVIDIA TX2,NVIDIA XAVIA, JetsonNANO,秒算,工控機等等,寫好了程序后,如果想要運行,開機之后還得連接鍵盤鼠標,顯示器,等程序運行之后還需要重新拔掉鍵盤鼠標顯示器等等,步驟繁瑣是一部分,還有可能因為反應不及時發生危險,尤其對于無人機等,因此需要配置程序開機自啟動。
一、ubuntu免密開機
路徑:系統設置–用戶設置
二、程序腳本啟動
可以創建test.sh文件,將程序所需要運行的指令全部加入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:會打開一個新的bash終端并執行c后面的語句。linux bash是一個命令處理器,通常運行于文本窗口中,并能執行用戶直接輸入的命令;Bash還能從文件中讀取命令,這樣的文件稱為腳本。語句用’;;’,隔開,最后的sleep 5表示延遲5秒退出,這樣就可以在新的終端看到運行效果,添加這個延時是為了方便驗證是否啟動程序或者節點
- 如果是ubuntu 18.04以前的系統:gnome-terminal -x bash -c;ubuntu18.04以后的系統輸入:gnome-terminal – bash -c
- gnome-terminal --tab:同一終端窗口中打開一個新選項卡。而是打開一個新窗口。
三、文件賦予權限
chmod指令詳細說明,請參考:【ubuntu】chmod命令
chmod 777 test.sh
四、開機啟動項管理器
gnome-session-properties是ubuntu的開機啟動項管理器。如果之前編寫的sh文件,不需要sudo權限,即可將sh文件加入gnome-session-properties自啟動管理器中即可。
終端輸入:gnome-session-properties
添加執行項目。其中command為你編寫的腳本路徑,name和comment可以隨意配置。
五、需要SUDO權限的腳本開機自啟動
有的時候,我們的設備連接外部設備,需要打開串口,甚至是gpio口,這需要使用到權限,串口可以通過添加rules來設置為普通用戶,但是之前在DJIManifold產品上需要程序對GPIO口進行設置,這個時候就需要用到sudo權限了,因為在進入sudo權限需要輸入密碼,這就不好完成開機自啟動。
此時就需要利用shell腳本自動輸入密碼
指令:echo 'password' | sudo -S "./test.sh"
后續還需要做三步操作:
給文件運行權限
sudo chmod 777 start.sh
設置腳本自啟動
gnome-session-properties
保持gnome-terminal窗口執行后不立刻關閉
在測試中會發現,gnome-terminal命令執行完會一閃而過,自行關閉。需要添加read命令,read命令是等待用戶按下回車后使窗口關閉。
gnome-terminal -x bash -c "echo \"OK now\"; read"
總結
原文鏈接:https://blog.csdn.net/zeye5731/article/details/126142233
相關推薦
- 2022-03-15 Docker Run Cadvisor failed: inotify_add_watch /sy
- 2022-03-26 C++鏈表節點的添加和刪除介紹_C 語言
- 2022-06-10 基于PyQt5制作一個群發郵件工具_python
- 2022-02-03 CentOS7啟動報錯:“A start job is running for /etc/rc.d/
- 2022-10-19 React封裝彈出框組件的方法_React
- 2022-10-12 Android自定義View實現遙控器按鈕_Android
- 2023-01-01 Golang反射修改變量值的操作代碼_Golang
- 2022-07-19 python:實現all subsequences所有子序列算法(附完整源碼)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支