您的位置:首页 > 运维架构 > Linux

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

2013-01-03 19:29 162 查看
原文: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 為中心

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


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]#

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

=============================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: