1. 開機啟動時自動運行程序
Linux加載后, 它將初始化硬件和設備驅動, 然后運行第一個進程init。init根據配置文件繼續引導過程,啟動其它進程。通常情況下,修改放置在
/etc/rc或
/etc/rc.d 或
/etc/rc?.d
目錄下的腳本文件,可以使init自動啟動其它程序。例如:編輯/etc/rc.d/rc.local 文件(該文件通常是系統最后啟動的腳本),在文件最末加上一行“xinit”或“startx”,可以在開機啟動后直接進入X-Window。
?
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”,運行“crontabcronFile”命令后,每當元月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-D
Job 1 at 2000-11-09 12:00
2000-11-09 12:00時候自動發一標題為“Have a lunch”,內容為plan.txt文件內容的郵件給Roger.
?
Ubuntu下添加開機啟動腳本
Ubuntu開機之后會執行/etc/rc.local文件中的腳本,所以我們可以直接在/etc/rc.local中添加啟動腳本。
當然要添加到語句:exit 0 前面才行。
如:
sudo vi /etc/rc.local
?
然后在 exit 0 前面添加好腳本代碼。
后續有空再研究下添加一個Ubuntu的開機啟動服務看看。
如果要添加為開機啟動執行的腳本文件,可先將腳本復制或者軟連接到/etc/init.d/目錄下,然后用:update-rc.d xxx defaults NN命令(NN為啟動順序),將腳本添加到初始化執行的隊列中去。
注意如果腳本需要用到網絡,則NN需設置一個比較大的數字,如98 。
?
修改 Ubuntu 啟動順序
?
方法一 利用啟動管理器
?
1、安裝 啟動管理器
sudo apt-get install startupmanager?
方法二 修改 /boot/grub/grub.cfg
1、備份原文件為 grub.cfg.bak
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak?
2、修改啟動順序
sudo gedit /boot/grub/grub.cfg?
menuentry 'Ubuntu,Linux 2.6.32-22-generic (恢復模式)'
menuentry 'Ubuntu,Linux 2.6.32-21-generic'
menuentry 'Ubuntu,Linux 2.6.32-21-generic (恢復模式)'
menuentry "Memory test (memtest86+)"
menuentry "Memory test (memtest86+, serial console 115200)"
menuentry "Microsoft Windows XP Professional (on /dev/sda1)"
注:以下為針對 ubuntu 8.04 版本
啟動ubuntu后,輸入:
sudo gedit /boot/grub/menu.lst
輸入正確密碼后,打開menu.lst。從第一行往下看,找到第一個開頭沒有#的行
default 0
然后往下看,在文件的尾部找到以title開頭的行(注意,以#開頭的都不要理),我的文件以title開頭的行(開頭沒有#)有7行,依次為:
title Ubuntu 8.04.1, kernel 2.6.24-21-generic
title Ubuntu 8.04.1, kernel 2.6.24-21-generic (recovery mode)
title Ubuntu 8.04.1, kernel 2.6.24-16-generic
title Ubuntu 8.04.1, kernel 2.6.24-16-generic (recovery mode)
title Ubuntu 8.04.1, memtest86+
title Other operating systems:
title Windows NT/2000/XP
這些行當然不是像這樣連在一起的,它們分散在文件中。我把這7行寫一起,就是讓我們看得清楚些。事實上,除去每行前面的title,這7行就是我開機時出現的啟動菜單項,系統在啟動時讀的就是該文件。
default 0
表示默認情況下啟動以上菜單上第 1 行( 0 + 1 )的系統
我們看到windows處于第 7 ( 6 + 1 )行,所以現在把default的值改為 6 ,保存文件,重啟系統,默認啟動的系統就改為Windows系統了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
