開機自動啟動程式在ubuntu14.04 [論壇 - 新手村]
正在瀏覽:
1 名遊客
開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2017/5/24 9:24 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
小弟是個ubuntu菜鳥
我在網路上看和論壇看的開機自動啟動程式,我發現我自己都有一點小問題。 首先 我寫了一個test.sh , 內容裡面是運行我的程式 #!/bin/bash gnome-terminal -e "/home/username/test/dist/./hi" 以下動作都是在終端機執行,我使用了網路上和論壇上有人使用的方法。 1.我使用~/.bashrc 我在裡面輸入執行我的test.sh ~/test.sh 變成我只要開終端機都會啟動我的test.sh。 這對我來說是不對的 因為我想要的是開機自動啟動程式是只會啟動一次。我關掉後在開終端機是不會在啟動test.sh的功能。 2./etc/init.d/和update-rc.d 我把我的test.sh放入/etc/init.d 。 我先手動測試:sudo /etc/init.d/test.sh start 是可以執行程式的。 但我使用自動執行的功能,我輸入了update-rc.d -f test.sh start 90 1 2 3 4 5 6 S . stop 10 0 . 然後重開機或重登入或關機在啟動,所有方法都使用,但它都沒有執行自動啟動程式功能。 3./etc/rc.local 我在/etc/rc.local裡面輸入了gnome-terminal -e "/home/username/test/dist/./hi" 然後用再移動到/etc/rcS.d 我輸入sudo ln ../rc.local S90rc.local 然後我又重開機或重登入或關機在啟動 它也都沒有自動執行 所以我想請問各位高手,我該如何設定才可以開機自動執行程式,而且只要執行一次就可以了。
2017/5/24 9:51
|
||||||||||
![]() |
回覆: 開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2016/4/18 12:29 所屬群組:
已註冊使用者 等級: 9
HP : 0 / 221
![]() |
沒研究過6@_@
/etc/rc0.d/ 這試過了嗎?
2017/5/24 11:02
|
||||||||||
![]() |
回覆: 開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2017/5/24 9:24 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
嗯~都試過了~
2017/5/24 13:50
|
||||||||||
![]() |
回覆: 開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
BIGBanana 寫到: 從您提到的,瞭解您有看過一些參考文章了, 不過還是先提供兩個索引,裡面有紀錄一些討論案例和參考連結,供您參考。 * [索引]如何執行指令 * [索引] 開機流程 ================================================================================ 您的環境是「Ubuntu 14.04」。 我的環境是「Xubuntu 16.04 amd64 英文界面」,以下測試是使用這個環境。 另外「14.04」和「16.04」有一個差異要注意的,就是在「16.04」加入了「systemd」的機制。 ================================================================================ 關於 BIGBanana 寫到: 建議您可以先釐清「~/.bashrc會在什麼條件下被執行?」 之前有一篇討論「回覆: alias 設定別名後,如何保存,不會每次退出終端機後就不見了,又要重新設定?」,裡面有一些連結,您可以參考。 在「Wikipedia / Unix_shell」裡面有一個表「Configuration files」,您也可以參考。 也可以執行「$ man bash」, 然後您用「profile」或「bashrc」當關鍵字查詢,可以找到一些相關的說明, 尤其在「INVOCATION」那部份的說明。 另外還有一個索引「bash-handbook」。 鳥哥的 Linux 私房菜,在這部份的討論,則是在「第十章、認識與學習BASH / 10.4.3 環境設定檔」。 另外還有一個要注意的,在「泛Ubuntu」的環境,預設的「~/.profile」會有下面這一段, 這會跟什麼條件下,會執行「~/.profile」和執行「~/.bashrc」有關。
您可以執行下面指令,觀看「~/.profile」的內容,「view」可以改成「vi」或「cat」或「less」或「more」...
================================================================================ 關於「2」和「3」,可以參考「[索引] 開機流程」 在下方,我有紀錄一些「## init」的討論案例。 您可以先瞭解的方向, A.在進入桌面環境後,有一個機制是「Desktop Application Autostart」, 可以參考這篇回覆「#8 回覆: 請問要怎麼設定開機時自動開啟指定檔案並具有root權限?」。 B.在進入桌面環境前,有幾個機制, 建議可以先閱讀下面幾篇文章 * 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit * 浅析 Linux 初始化 init 系统,第 2 部分: UpStart * 浅析 Linux 初始化 init 系统,第 3 部分: Systemd * SystemdForUpstartUsers ================================================================================ ## 簡單範例 - 關於「Desktop Application Autostart」 前置動作 執行下面指令,安裝「libnotify-bin」這個「Package」
安裝完畢後,執行下面指令,觀看「libnotify-bin」這個「Package」有那些檔案安裝在系統上。
顯示
執行下面指令,建立專案資料夾
然後來到「Arch Wiki / Desktop notifications」這一頁, 找到「Libnotify / Bash」的範例「hello_world.sh」
所以執行下面指令,產生範例程式
執行
顯示
執行下面指令,設定使用者可執行的權限
執行
顯示
然後可以執行
正常的狀況下就會出現一個對話框。 接下來要測「Desktop Application Autostart」的機制, 有兩個位置可以放置 * /etc/xdg/autostart * ~/.config/autostart/ 執行「$ ls /etc/xdg/autostart」應該可以看到一些副檔名是「desktop」的檔案,您可以複製參考來修改。 而這次測試則是放在「~/.config/autostart」這個資料夾底下 執行下面指令,產生「~/.config/autostart/hello.desktop」這個檔案
然後登出桌面,再登入桌面,一樣會看到剛剛提到的對話框。 ================================================================================ 註: 關於「Desktop Application Autostart」放置的路徑,也可以透過執行下面的指令曉得
顯示
關於「kde4-config」這個指令,是屬於「kdelibs-bin」這個套件。 可以執行下面指令,找到更多的「type」
例如執行
顯示
================================================================================ * /etc/init.d * /etc/init 在「/etc/init.d」這個資料夾底下,有兩個檔案「README」和「skeleton」可以參考。 * /etc/init.d/README * /etc/init.d/skeleton 或是也可以參考一些既有的實作 例如 * /etc/init.d/console-setup * /etc/init.d/apport 然後之前有一些討論 * #3 回覆: 在啟動或關機時執行script (rc.d)執行 * #4 回覆: VNC 如何開機自動運行 * Debian Wiki / LSBInitScripts * Debian/Ubuntu 新增開機自動執行程式 * Ubuntu Community Help Wiki / UpstartHowto * Ubuntu Community Help Wiki / UbuntuBootupHowto $ man service $ man update-rc.d $ man insserv 關於這部份的範例,還沒實際去撰寫和完整的測試,所以就沒提供我自行撰寫的範例,請先參考上面提到的連結。 ================================================================================ 以上提供參考 報告完畢 ![]()
2017/5/24 17:13
|
||||||||||
![]() |
回覆: 開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2017/5/24 9:24 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
謝謝你的建議~不過我測試你上面所說的~還是一樣狀況@@a登出或重開機或關機在啟動,沒有任何反應。ORZ.....
2017/5/25 9:34
|
||||||||||
![]() |
回覆: 開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2012/4/22 10:50 所屬群組:
已註冊使用者 等級: 37
HP : 0 / 905
![]() |
BIGBanana 寫到: BIGBanana 寫到: 先釐清一下,您使用「gnome-terminal -e」的考量是? 是要看顯示的訊息嗎? 另外您若使用「gnome-terminal -e "/home/username/test/dist/hi"」 因為「gnome-terminal」需要有圖形界面環境才能執行, 而您使用「init script」的方式,是在「進入桌面環境前」執行的,這樣「gnome-terminal -e」應該無法正常執行。 您可以嘗試改成下面的方式來執行,再測看看 (以下我沒去測過)
或
您也可以「/home/username/test/dist/hi」這個程式裡面,加入「寫log(寫檔)」的機制,然後執行
然後觀看log,確認您的程式是否有執行 若是您的程式是daemon,則是可以觀看該process是否存在
以上釐清 ![]()
2017/5/25 13:18
|
||||||||||
![]() |
回覆: 開機自動啟動程式在ubuntu14.04 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2017/5/24 9:24 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 5
![]() |
謝謝,我試看看!!~
2017/5/25 15:01
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.