Ubuntu 14 如何设置开机自启动?

释放双眼,带上耳机,听听看~!

## 切换到root
sudo -i 

## 自动启动主要扫描这个目录下的软连接
cd /etc/rcS.d

## 赋予rc.local 可执行的权限
chmod +x ../rc.local

## S表启动时执行,60 是顺序可调整
sudo ln -s ../rc.local S60rc.local

## 重启就发现写在 /etc/rc.local 里的命令开机时都执行了

参考:
https://www.ubuntu-tw.org/modules/newbb/viewtopic.php?viewmode=compact&type=&;topic_id=42022&forum=22

(◕ ◡◡ ◕) 2011/8/15 17:16
一般的 Linux 來說,/etc/rc.local 就是開機自啟動腳本
功用類似 windows 下的 autoexec.bat

但是,Ubuntu 的 /etc/rc.local 是"無效"的!
它有這個檔,但實際上無任何效果,擺好看的而已。

由於 Ubuntu 是 Debian 系的 Linux
所以可以上網搜尋 Debian 的開機自啟動方法

方法如下:

寫一支 shell script,放在 /etc/init.d 底下

檔名隨便,高興就好
不過 shell script 腳本副檔名一般取做 .sh
實際上 Linux 對副檔名不敏感,這只是方便人辨識而已

比方說:寫一支叫做 test.sh 的腳本,放在 /etc/init.d/test.sh

當然的 shell scritp 腳本
開頭要宣告 shell
這樣才會是一支合語法的 shell 腳本
比如:
#!/bin/sh 
或 
#!/bin/bash 
或 
#!/bin/dash

給予該腳本可執行權限

sudo chmod 755 test.sh

放在 /etc/init.d 底下,其實不會開機自啟動
那個目錄,只是用來收集腳本的而已
事實上,要放別的地方也行….
把腳本放在一起,比較好管理,這算約定俗成的潛規則吧,不成文的習慣。

真正開機自啟動的偵測目錄,是在:/etc/rcS.d
放在這個目錄中的腳本或檔案,開機會被系統自動執行

/etc/rcS.d 中
一般只放軟連結(符號連結),不放真實的檔案
這也是約定俗成的不成文規矩,這是有理由的
當然的,不想遵守這個規則,直接放真實檔案也行的。

只放軟連結的理由,是因為開機自啟的項目,可能需要經常增減調整,若放真實檔案,砍掉不就沒了,還要先備份比較麻煩。用軟連結,砍掉了也不會影響真實檔案,事後要還原,再軟連結一次即可。

而且有時候是不想開機自啟動,但是想要可以開機後隨時可以手動啟動,那麼放在 /etc/init.d/ 中,隨時都可以手動啟動或停止。

總之,軟連結的方式,可以保持腳本只有一個檔,這樣子在編修的時候,只需維護一個腳本檔,才不會同樣的檔名的腳本到處存,版本內容新舊很難管理。

所以造一個軟連結,例如:
cd /etc/rcS.d
sudo ln -s ../init.d/test.sh S50test.sh

/etc/rcS.d 中只有大寫 S 開頭的檔案,會被執行
檔名 S 後面的號碼,是執行優先順序

其實它是按照檔名排列順序,來依序執行
號碼小的檔名,自然會排在前面,就會被先執行
後碼大的檔名,會排在後面,就會比較晚被執行

/etc/rcS.d 中,原先就有很多系統自帶的啟動腳本軟連結
那些腳本都和系統服務有關係

一般來說自己加入的啟動腳本,必須在系統服務啟動後才執行,所以檔名號碼應該大一點,甚至排在最後。

因為在寫腳本的時候,可能會用到一些指令,而那些指令都是系統服務提供的,若系統服務都還沒啟動,就去呼叫那些服務提供的功能,運行肯定出錯。

所以自己加入的啟動腳本,在開機自啟的時候,順序是很重要的。若不知如何選擇順序,那放到最後面,肯定不會錯。


附帶一提:

Q.要如何讓 Ubuntu 的 /etc/rc.local 生效?

A.
如果明白了前面講的那些 /etc/rcS.d 的原理

要讓 /etc/rc.local 生效,很簡單

在 /etc/rcS.d 中,加入一個軟連結

cd /etc/rcS.d
sudo ln -s ../rc.local S60rc.local
(Sxx 執行順序號碼,只是舉例,可以視需要調整)

這樣子 /etc/rc.local 就有生效了。

但有一點我不太明白的就是:
別的 Linux Distro 發行版本,預設都讓 /etc/rc.local 生效的
為何 Ubuntu 要這樣折騰人,還得自己去讓它生效…

原因估計是為了安全性著想,因為很多惡意程式,會去寫入 rc.local 讓惡意程式開機就執行。

不過真正在乎安全性的人,是不會去安裝官方套件庫以外的軟體。所以覺得 Ubuntu 這真的是多此一舉,徒增使用者麻煩而已。

 

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MongoDB最简单的入门教程之一 环境搭建

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索