原文:http://www.programmer-club.com/showSameTitleN/unix/2426.html
两行========之间为不同id的回答。。。
每次登入linux後, 如何令程式自動啟動?
===============================
1. 使用 ntsysv
2. 放在 /etc/rc.local 裏
3. 放在 /etc/rc.d/rcx.d 裏
x 為你的 runlevel
======================
2005/8/30 上午 11:39:47
何如您進入 /etc/rc.d/rc5.d(若您的開機預設為X-window)
可能會有看見S10network
s 表示開機時會啟動(若開頭為K,表示開機時不啟動)
10 表示啟動的順序(0~99)
network 表示啟動的服務(如:pcmcia sshd vsftpd等等)
您要將您要啟動的服務由K改為S(利用mv指令來更改)
這樣子應該就可以了
==========================
2005/8/30 下午 02:43:34
K 開頭者的意思不是表示開機不啟動
而是關機時停止服務的順序
K 之後數字愈小者愈先被停止
通常是與開機時啟動的服務順序相反
開機時愈先被啟動的服務在關機時會愈晚被停止
另外許多 Sxx 與 Kxx 是 link 到相同的 script 裏
以 S 開頭者會執行該 script 的 start 動作
以 K 開頭者則會執行 stop 動作
例如 S89cron 與 K11cron 都是指向 ../init.d/cron 這個 script
../init.d/cron 這個 script 則需要能接受 start 與 stop 參數
以參數的不同來執行開始或結束的動作
開機執行到 S89cron 時系統會執行 ../init.d/cron start
關機執行到 K11cron 時系統則會執行 ../init.d/cron stop
(但也有例外,如 reboot 或 halt 等只會在關機時需要執行的動作)
在將自己的程式納入 rc.d 來管理時
將 K 替換為 S 要考慮順序問題是否會有影響
以及程式是否支援 start/stop 參數
===================================
2005/9/3 上午 02:25:26
發現我有講不清楚的地方
來 update 一下
開關機等步驟其實是由 /sbin/init 來決定你的 runlevel
所謂 runlevel 可解釋為系統目前的階段
這些階段常見的有關機,重開機,開機後進入文字模式,開機後執行 X,單人模式等等
通常這會有 0 到 6 共七個 runlevel
例如 0 通常代表關機, 6 代表重開機, 5 為開機後執行 X
在我的 Debian 系統中
每個 runlevel 都有 /etc/rcx.d 的目錄
x 為 runlevel 值
裏面放的就是包括 S 或 K 開頭的 link
這些 link 都指到 /etc/init.d 中的 script
若我要進入 runlevel 5 (開機後執行 X)
系統會執行 /etc/rc5.d 中的每個 script
S 開頭的就加 start 參數,K 開頭的就加 stop 參數
依此完成 runlevel 的執行
因此開關機要執行什麼其實與 runlevel 有關
關機有關的就要放在 rc0.d 或 rc6.d 中
開機有關的也許放在 rc2.d 與 rc5.d 中
也有 dist 有例外,如 Gentoo Linux
但其實觀念都是以 init 為中心
=======================================================================
2005/9/5 下午 05:39:07
來挑個小毛病...大家千萬別打我...T-T
樓主問的問題是..
每次"登入"linux後, 如何令程式自動啟動?
而不是..
每次"重新開機"linux後, 如何令程式自動啟動?
所以....
如果以問題來看.答案應該是...
/etc/profile (for all users)
跟
/home/users/USERNAME/.bash_profile (for 單一 user)
這兩個檔案都是Shell Script,當使用者"登入"Linux時,
優先會執行的是/etc/profile,接下來才會執行自己目錄下的.bash_profile
ps1. ".bash_profile"是個隱藏檔要用 ls -al才看得到.
ps2. "/home/users/USERNAME/.bash_profile"路徑跟檔名會因不同版本的Linux有些許的差異.
=======================================================================
2005/9/24 下午 04:48:23
假設你寫了一個備份 MySQL 資料庫的小程式 ,則最簡單的方式
就是修改 /etc/rc.d/rc.local 檔內的內容 ...
在檔案的末端加上 要執行的小程式 即可 ,例如 ..
[root@linux223 rc.d]#tail rc.local
# want to make to /etc/issue here or you will lose them when you reboot.
echo "" > /etc/issue
echo "$R" >> /etc/issue
echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue
fi
## 自動備份資料庫指令
/root/autobackupdb.sh
[root@linux223 rc.d]#
... 以上供參考 ,歡迎指正 ,謝謝 !
=============================================================================