每次登入linux后,让程序自动启动。。。

原文:http://www.programmer-club.com/showSameTitleN/unix/2426.html

两行========之间为不同id的回答。。。

每次登入linux後, 如何令程式自動啟動?

===============================

2005/7/5 下午 05:55:19
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 為中心

=======================================================================

主題發起人iamdragon註記此篇回應為最佳解答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]#

... 以上供參考 ,歡迎指正 ,謝謝 ! 

=============================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值