linux_把可執行程式做成一個服務__linux

來源:互聯網
上載者:User

 把可執行程式做成一個服務

    在linux系統啟動的時候,我們可以看到很多服務性程式一個接一個的被啟動(就是那些後面有一個蘭色[OK]的行),這些在後台啟動並執行程式為我們使用電腦起了很重要的作用,以這種方式啟動並執行程式有以下特點:
 開機啟動,關機停止(廢話。關機了還運行啊。。。)
 後台運行
 通過service 命令控制或查看對應的程式的運行狀態

    恩,不錯,那怎麼把我們自己編製的程式做成這樣的一個服務呢。

    廢話少說,主要分以下3步:

    1、把可執行程式放到一個linux系統可以找到的地方。
 在linux命令提示字元下輸入 env ,斷行符號後可看到環境變數,裡面有一項PATH的,對,這項裡所指定的目錄都是系統可找到的地方,把我們的可執行程式放入其中的一個目錄下即可,我們一般放在/usr/sbin/目錄下(放什麼有放什麼的地方,最好不要亂放)。

    2、在目錄 /etc/init.d/ 下,建立一個以服務名為檔案名稱的檔案。
 如果我們開啟目錄 /etc/init.d/,看到的檔案其實都是服務程式檔案,每個檔案的內容都大同小異,我們會看到,這裡的檔案在檔案結構上幾乎是一樣的。幾乎每個檔案都有 start、stop、restart和status這樣的標誌,對,我們建立的這個檔案也具有相同的結構,只是在這些標誌內部把相應的可執行程式換成我們自己的可執行程式即可,知道怎麼做了嗎。那就是:複製——修改——儲存。

    3、在目錄 /etc/rc3.d/ 下,建立一個指向在第2步中建立的服務檔案的符號串連檔案。
 開啟目錄 /etc/rc3.d/ ,我們將看到這裡都是符號串連檔案(linux系統中的符號串連相當於windows中的捷徑)。採用以下命令格式:
 ln -sf 目標檔案名 串連檔案名稱
    串連檔案名稱益採用“SXX目標檔案名”的格式,其中XX一般是一個從1到100的整數,它表示啟動優先順序,數字越大,優先順序越低,比如:服務A的運行要依賴服務B,那A的XX數字就應該大於B的。後跟“目標檔案名”是為了一目瞭然,一看就知道是哪個檔案的符號串連。
    目錄 /etc/rc3.d/ 是系統啟動時自動搜尋的目錄,該目錄下的符號串連檔案的目標檔案,都將被運行,這就是在這個目錄建立符號串連的原因——為了開機就運行。

    好了,完成以上3個步驟,你就把自己的一個可執行程式做成系統的一個服務了,它具有我們一開始說的幾個特定。我們可以用service命令控制這個程式了:
 啟動:service hdz_service start
 停止:service hdz_service stop
 重啟:service hdz_service restart
    上面的 hdz_service 為服務名,也就是在第2步中建立的檔案名稱。

    不過,好象感覺比較麻煩,能否把這幾個步驟自動化一下。這樣在一台新機子上部署就方便了,也更象回事 -_^。辦法當然有了,還記得我們那個記錄代碼檔案之間依賴關係的makefile檔案嗎。呵呵,我們在這裡要用到它了。
    在makefile檔案中添加一個標誌,並在該標誌下添加和下面類似的代碼:

install:
 cp ./hdz_pro /usr/sbin/
 cp ./hdz_service /etc/init.d/
 cd /etc/init.d/
 chmod +x hdz_service
 cd /etc/rc3.d/
 ln -sf ../init.d/hdz_service ./S99hdz_service

    在標誌install下的沒一句話,前面一定要留空白,這不僅是有利於閱讀,更是一個要求,makefile檔案要求每一句可執行語句前都要有空白(空格或tab)。
    上面代碼中的 hdz_pro 和 hdz_service 分別是可執行檔名和服務名,這兩個名稱換成你自己的就行了,操作時用以下命令:
 make install
    運行完就一切OK了,簡單吧。

    大家在看我寫的東東時,時不時會碰到“hdz”這樣的東西,這是我名字的縮寫,說明這正是要替換的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.