以supervisord服務腳本爲例:php
第1步:把上面的腳本放在/etc/init.d/文件linux
ln -s ./supervisord /etc/init.d/supervisord
apache
第2步:將啓動腳本權限改成可執行。編輯器
chmod
a+x /etc/init.d/supervisord
第3步:添加啓動項。spa
chkconfig --add supervisord
chkconfig supervisord on
第4步:檢查是否設置成功。操作系統
chkconfig --list | grep supervisord supervisord 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
二、手動配置在文件中加入啓動命令命令行
三、文件指向路徑是/etc/init.d下的腳本文件rest
0-6是linux操做系統的運行級別,運行runlevel查看當前運行級code
運行級別0:系統停機狀態,系統默認運行級別不能設爲0,不然不能正常啓動
運行級別1:單用戶工做狀態,root權限用戶,用於系統維護,禁止遠程登錄
運行級別2:多用戶狀態(沒有NFS)
運行級別3:徹底的多用戶狀態(有NFS),登錄後進入控制檯命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制檯,登錄後進入圖形GUI模式
運行級別6:系統正常關閉並重啓,默認運行級別不能設爲6,不然不能正常啓動
/etc/rc[0-6].d目錄下文件的命名規則:S|K + nn + script進程
S|K,S開頭命名的是開機要執行的腳本,K開頭命名的是關機要執行的腳本
nn取值0-100,表示優先級,數字越大,優先級越低
script是軟連接指向的腳本的文件名
/etc/init.d目錄下的控制腳本接受參數
-- start //啓動
-- stop //中止
-- restart //重啓
-- status //狀態
-- force-reload //從新載入配置
update-rc.d命令爲/etc/init.d目錄下的腳本創建或刪除到/etc/rc[0-6].d的軟連接
增長一個服務
添加這個服務並讓它開機自動執行
update-rc.d apache2 defaults
而且能夠指定該服務的啓動順序:
update-rc.d apache2 defaults 90
還能夠更詳細的控制start與kill順序:
update-rc.d apache2 defaults 20 80
其中前面的20是start時的運行順序級別,80爲kill時的級別。也能夠寫成:
update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .
其中0~6爲運行級別。
刪除一個服務
update-rc.d -f apache2 remove
經過將應用程序的.desktop文件放在自啓動目錄下,那麼當用戶登錄桌面環境時,就會自動啓動這些應用程序。
linux中自啓動目錄是$XDG_CONFIG_DIRS/autostart和$XDG_CONFIG_HOME/autostart這兩個,能夠打印看一下,有的可能只有其中一個。
把設置好的.desktop放在這兩個目錄下,那麼指定的程序就會在桌面環境啓動時啓動,當兩個自啓動目錄同時存在相同的文件時,只會運行其中一個($XDG_CONFIG_HOME)。
program.desktop文件寫法:
[Desktop Entry]
Name=program
Exec=/usr/bin/program
Type=Application
Comment=my program
只須要有這關鍵的幾行就能夠了,Exec的路徑必定要正確。.desktop文件還有其餘定製項,可參考其餘文章。
五、crontab定時執行任務
週期執行的任務通常由cron這個守護進程來處理[ps -ef|grep cron]
cron的配置文件稱爲「crontab」,是「cron table」的簡寫
service crond start //啓動服務
service crond stop //關閉服務
service crond restart //重啓服務
service crond reload //從新載入配置
service crond status //查看服務狀態
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
crontab -l //在標準輸出上顯示當前的c
crontab -r // 刪除當前的crontab文件。
crontab -e //使用VISUAL或者EDITOR環境變量所指的編輯器編輯當前的crontab文件,當結束編輯離開時,編輯後的文件將自動安裝。
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*表明全部的取值範圍內的數字,"/"表明每的意思,"/5"表示每5個單位,"-"表明從某個數字到某個數字,","分開幾個離散的數字。