前言 :
在 Windows, 你可以透過在 開始 > 所有程式 > 啟動 下添加程式. 如此你的程式將會由 OS 自動在開機後執行該程式 :
如果是 Linux 呢? 同樣的你可以根據不同的 run level, 將你打算在系統開機後執行的 script 放在 /etc/rc[0-6].d/ 下面, 則系統會在開機後自動到這裡執行你的 script. 底下是各個 run level 的定義 :
實驗範例 :
這邊假設我的機器 run level=2, 而我有一個程式希望在系統開機後自動執行. 因此我寫了一個簡單 script "S98spserv" 放在 /etc/rc2.d/ 下. 其中檔名 S 指的是開機後執行的順序, 後面跟著 98 說明在第 98 順位下被執行, 接著跟著 "spserv" 即是我服務的名稱. script 內容如下 :
上面程式碼會在 /home/john/Test 下建立檔案 "S98spservTest_rc2" 並將一些相關訊息寫到裡面, 最後一行即是啟動我自己的服務. 接著我們可以使用下面命令讓系統重啟 :
接著來檢查看看系統有沒有執行剛剛我們建立的 script :
由上可以知道開機後, 系統會以 "start" 為參數來執行我們的 script, 且執行的位置為跟目錄 '/'. 接著來檢查我的 service 有沒有成功開啟 :
打完收工, 我們的服務已經成功啟動.
補充說明 :
* Linux系統的啟動程序
* 鳥哥 Linux 私房菜 : 第十八章、認識系統服務 (daemons)
* 鳥哥 Linux 私房菜 : 第二十章、開機流程、模組管理與 Loader
在 Windows, 你可以透過在 開始 > 所有程式 > 啟動 下添加程式. 如此你的程式將會由 OS 自動在開機後執行該程式 :
如果是 Linux 呢? 同樣的你可以根據不同的 run level, 將你打算在系統開機後執行的 script 放在 /etc/rc[0-6].d/ 下面, 則系統會在開機後自動到這裡執行你的 script. 底下是各個 run level 的定義 :
實驗範例 :
這邊假設我的機器 run level=2, 而我有一個程式希望在系統開機後自動執行. 因此我寫了一個簡單 script "S98spserv" 放在 /etc/rc2.d/ 下. 其中檔名 S 指的是開機後執行的順序, 後面跟著 98 說明在第 98 順位下被執行, 接著跟著 "spserv" 即是我服務的名稱. script 內容如下 :
- #!/bin/sh -e
- touch /home/john/Test/S98spservTest_rc2 # Test to check if being executed
- echo "$1" > /home/john/Test/S98spservTest_rc2 # echo first argument into the touch file
- DFT_PATH=`pwd`
- echo "$DFT_PATH" >> /home/john/Test/S98spservTest_rc2 # Check execution path
- cd /home/john/NTNUProj/ # Change to working directory
- CUR_PATH=`pwd` # Check current path
- echo "$CUR_PATH" >> /home/john/Test/S98spservTest_rc2 # echo path info into touch file
- java -Xmx1024M -cp NLPracTasks.jar stanford.services.Webserv -c webserv.properties & # Start my service
接著來檢查看看系統有沒有執行剛剛我們建立的 script :
由上可以知道開機後, 系統會以 "start" 為參數來執行我們的 script, 且執行的位置為跟目錄 '/'. 接著來檢查我的 service 有沒有成功開啟 :
打完收工, 我們的服務已經成功啟動.
補充說明 :
* Linux系統的啟動程序
* 鳥哥 Linux 私房菜 : 第十八章、認識系統服務 (daemons)
* 鳥哥 Linux 私房菜 : 第二十章、開機流程、模組管理與 Loader
This message was edited 16 times. Last update was at 11/08/2012 19:04:16
沒有留言:
張貼留言