ubuntu添加開機自啟和sysv-rc-conf


此文ubuntu使用sysvinit,而非upstart

UBUNTU添加開機自動啟動程序方法

1. 開機啟動時自動運行程序 
   Linux加載后它將初始化硬件和設備驅動然后運行第一個進程initinit根據配置文件繼續引導過程,啟動其它進程。通常情況下,修改放置在 /etc/rc /etc/rc.d  /etc/rc?.d 目錄下的腳本文件,可以使init自動啟動其它程序。例如:編輯/etc/rc.d/rc.local 文件(該文件通常是系統最后啟動的腳本)在文件最末加上一行“xinit”“startx”,可以在開機啟動后直接進入XWindow 

2. 登錄時自動運行程序 

 用戶登錄時,bash先自動執行系統管理員建立的全局登錄script /ect/profile 
   然后bash在用戶起始目錄下按順序查找三個特殊文件中的一個: 
     /.bash_profile 
     /.bash_login 
     /.profile 
   但只執行最先找到的一個。因此,只需根據實際需要在上述文件中加入命令就可以實 
   現用戶登錄時自動運行某些程序(類似於DOS下的Autoexec.bat)。 

3. 退出登錄時自動運行程序 
   退出登錄時,bash自動執行個人的退出登錄腳本 
     /.bash_logout 
   例如,在/.bash_logout中加入命令“tar cvzf c.source.tgz .c”,則在每次退出 
   登錄時自動執行 “tar” 命令備份 *.c 文件。 

4. 定期自動運行程序 
   Linux有一個稱為crond的守護程序,主要功能是周期性地檢查 /var/spool/cron目錄 
   下的一組命令文件的內容,並在設定的時間執行這些文件中的命令。用戶可以通過 
   crontab 命令來建立、修改、刪除這些命令文件。 

   例如,建立文件crondFile,內容為“00 9 23 Jan * HappyBirthday”,運行“crontab 
   cronFile”命令后,每當元月23日上午9:00系統自動執行“HappyBirthday”的程序( 
   ”表示不管當天是星期幾)。 

5. 定時自動運行程序一次 
   定時執行命令at crond 類似(但它只執行一次):命令在給定的時間執行,但不自 
   動重復。at命令的一般格式為:at [ f file ] time ,在指定的時間執行file文件 
   中所給出的所有命令。也可直接從鍵盤輸入命令: 
     $ at 12:00 
     at>mailto Roger s ″Have a lunch″ < plan.txt 
     at>Ctr
     Job 1 at 20001109 12:00 
   20001109 12:00時候自動發一標題為“Have a lunch”,內容為plan.txt文件內容 
   的郵件給Roger.

ubuntu 自添加開機啟動程序

ubuntu (我的是 9.10)的開機啟動會和 redhat suse 這些發行版會稍有差別,比如默認情況下沒有 /etc/inittab 的配置文件,redhat 發行版在啟動級別 上是文本模式登錄,而 ubuntu 的啟動級別2~都是一樣的啟動。現在,添加一個自定義的可執行文件或腳本,使其在開機啟動時執行。

以一個腳本為例,腳本的內容很簡單 

引用#! /bin/sh
echo "hello start up script!" > /home/beyes/mystart.txt
exit 0

 

這個腳本的作用只是在我的家目錄里建立一個文本文件,里面的內容就是 echo 后的內容hello start up script!

編輯好這個腳本后,給其賦予相應的可執行文件,為了方便,就 chmod 777 /etc/init.d/mystart

接着在 /etc/rc5.d 這個目錄下做一個軟鏈接:  ln -s /etc/init.d/mystart /etc/rc5.d/S99mystart

那么,這個腳本開機啟動生效了么?經過重啟后,並沒有發現在 /home/beyes 目錄下生成 mystart.txt 文件。

使用 sysv-rc-conf 配置一下啟動服務:

在第 2 運行級別也配置了讓 mystart 啟動。這個 sysv-rc-conf 會讀取 /etc/init.d 里的文件以及 rcx.d (x為運行級別)下的軟連接等信息。

關於更多管理啟動項的更多信息見:
http://www.groad.net/bbs/read.php?tid-1392.html 

置完后,重啟。再到 /home/beyes 里查看,生成了 mystart.txt 文件,里面也有相應的內容。從這里,也看到了 ubuntu 默認的啟動運行級別為 。另外,在 /etc/rc2.d 目錄下,也發現了由 sysv-rc-conf 生成的軟連接:S99mystart

 

 


 

關於Ubuntu upstart啟動管理方式擴展:

linux啟動過程綜述
http://www.ibm.com/developerworks/cn/linux/kernel/startup/index.html

Upstartubuntu啟動過程,簡單原理
http://www.linuxdiyf.com/viewarticle.php?id=102927

Upstart: Ubuntu 的基於事件的啟動進程
http://www2.oklinux.cn/html/Basic/azpz/20080504/52808.htm

 


 

sysv-rc-conf

一、sysv-rc-conf簡介
       sysv-rc-conf是一個強大的服務管理程序,群眾的意見是sysv-rc-confchkconfig好用。

二、背景知識

Ubuntu運行級別

Linux 系統任何時候都運行在一個指定的運行級上,並且不同的運行級的程序和服務都不同,所要完成的工作和要達到的目的都不同,系統可以在這些運行級之間進行切換,以完成不同的工作。

Ubuntu 的系統運行級別:
0        系統停機狀態
1        單用戶或系統維護狀態
2~5    多用戶狀態
6        重新啟動 

查看當前運行級別,執行命令:
runlevel
 runlevel 顯示上次的運行級別和當前的運行級別,“N”表示沒有上次的運行級別。)

切換運行級別,執行命令:     
int [0123456Ss]
 即在 init 命令后跟一個參數,此參數是要切換到的運行級的運行級代號,如:用 init 0 命令關機;用 init 6 命令重新啟動。)

Linux 系統主要啟動步驟:
    1. 讀取 MBR 的信息,啟動 Boot Manager
            Windows 使用 NTLDR 作為 Boot Manager,如果您的系統中安裝多個
            版本的 Windows,您就需要在 NTLDR 中選擇您要進入的系統。
            Linux 通常使用功能強大,配置靈活的 GRUB 作為 Boot Manager
    2. 加載系統內核,啟動 init 進程
            init 進程是 Linux 的根進程,所有的系統進程都是它的子進程。
    3. init 進程讀取 /etc/inittab 文件中的信息,並進入預設的運行級別,
       按順序運行該運行級別對應文件夾下的腳本。腳本通常以 start 參數啟
       ,並指向一個系統中的程序。
            通常情況下, /etc/rcS.d/ 目錄下的啟動腳本首先被執行,然后是
            /etc/rcN.d/ 目錄。例如您設定的運行級別為 3,那么它對應的啟動
            目錄為 /etc/rc3.d/ 
    4. 根據 /etc/rcS.d/ 文件夾中對應的腳本啟動 Xwindow 服務器 xorg
            Xwindow 為 Linux 下的圖形用戶界面系統。
    5. 啟動登錄管理器,等待用戶登錄
            Ubuntu 系統默認使用 GDM 作為登錄管理器,您在登錄管理器界面中
            輸入用戶名和密碼后,便可以登錄系統。(您可以在 /etc/rc3.d/
            文件夾中找到一個名為 S13gdm 的鏈接)

三、安裝sysv-rc-conf
sudo apt-get install sysv-rc-conf

四、使用sysv-rc-conf
sudo sysv-rc-conf
操作界面十分簡潔,你可以用鼠標點擊,也可以用鍵盤方向鍵定位,用空格鍵選擇,用Ctrl+N翻下一頁,用Ctrl+P翻上一頁,用Q退出。

常見的系統服務有:
acpi-support 高級電源管理支持
acpid acpi 守護程序.這兩個用於電源管理,非常重要
alsa 聲音子系統
alsa-utils
anacron cron 的子系統,將系統關閉期間的計划任務,在下一次系統運行時執行。
apmd acpi 的擴展
atd 類似於 cron 的任務調度系統。建議關閉
binfmt-support 核心支持其他二進制的文件格式。建議開啟
bluez-utiles 藍牙設備支持
bootlogd 啟動日志。開啟它
cron 任務調度系統,建議開啟
cupsys 打印機子系統。
dbus 消息總線系統(message bus system)。非常重要
dns-clean 使用撥號連接時,清除 dns 信息。
evms 企業卷管理系統(Enterprise Volumn Management system)
fetchmail 郵件用戶代理守護進程,用於收取郵件
gdm gnome 登錄和桌面管理器。
gdomap
gpm 終端中的鼠標支持。
halt 別動它。
hdparm 調整硬盤的腳本,配置文件為 /etc/hdparm.conf
hibernate 系統休眠
hotkey-setup 筆記本功能鍵支持。支持類型包括: HP, Acer, ASUS, Sony,Dell, 和 IBM
hotplug and hotplug-net 即插即用支持,比較復雜,建議不要動它。
hplip HP 打印機和圖形子系統
ifrename 網絡接口重命名腳本。如果您有十塊網卡,您應該開啟它
inetd 在文件 /etc/inetd.conf ,注釋掉所有你不需要的服務。如果該文件不包含任何服務,那關閉它是很安全的。
klogd 重要。
linux-restricted-modules-common 受限模塊支持。
/lib/linux-restricted-modules/ 文件夾中的模塊為受限模塊。例如某些驅動程序,如果您沒有使用受限模塊,就不需要開啟它。
lvm 邏輯卷管理系統支持。
makedev 創建設備文件,非常重要。
mdamd 磁盤陣列
module-init-tools /etc/modules 加載擴展模塊,建議開啟。
networking 網絡支持。按 /etc/network/interfaces 文件預設激活網絡,非常重要。
ntpdate 時間同步服務,建議關閉。
pcmcia pcmcia 設備支持。
powernowd 移動 CPU 節能支持
ppp and ppp-dns 撥號連接
readahead 預加載庫文件。
reboot 別動它。
resolvconf 自動配置 DNS
rmnologin 清除 nologin
rsync rsync 守護程序
sendsigs 在重啟和關機期間發送信號
single 激活單用戶模式
ssh ssh 守護程序。建議開啟
stop-bootlogd 在 2,3,4,5 運行級別中停止 bootlogd 服務
sudo 檢查 sudo 狀態。重要
sysklogd 系統日志
udev & udev-mab 用戶空間 dev 文件系統(userspace dev filesystem)。重要
umountfs 卸載文件系統
urandom 隨機數生成器
usplash 開機畫面支持
vbesave 顯卡 BIOS 配置工具。保存顯卡的狀態
xorg-common 設置 服務 ICE socket
adjtimex 調整核心時鍾的工具
dirmngr 證書列表管理工具,和 gnupg 一起工作。
hwtools irqs 優化工具
libpam-devperm 系統崩潰之后,用於修理設備文件許可的守護程序。
lm-sensors 板載傳感器支持
mdadm-raid 磁盤陳列管理器
screen-cleanup 清除開機屏幕的腳本
xinetd 管理其他守護進程的一個 inetd 超級守護程序

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM