linux服務和啓動流程

1. linux服務(daemon):stand alone(服務可單獨啓動)和super daemon(通過xinetd統一管理的服務)。

 

1.1 stand alone daemon啓動的腳本放置在/etc/init.d/這個目錄中,

啓動規則一:/etc/init.d/rsync {start|stop|status|restart|condrestart}

啓動規則二:service rsync start

特點:daemon常駐內存,響應快,無服務啓動時間。

 

 

1.2 super daemon的配置文件/etc/xinetd.conf,個別daemon配置文件則放在/etc/xinetd.d/*內,

啓動規則統一爲:/etc/init.d/xinetd restart.

特點:由super daemon統一管理,僅當客戶請求時,super daemon才喚醒相應的服務。

常用命令:

grep -i 'disable' /etc/xinetd.d/* #查看super daemon所管理的服務有哪些啓動

grep 'rsync' /etc/services #查看rsync佔用的端口號

netstat -tnlp|grep 873 #查看873端口是否正在監聽

 

1.2.1 xinetd.conf配置文件講解

 

Java代碼  收藏代碼
  1. defaults  
  2. {  
  3.         log_type        = FILE /var/log/xinetd.log   
  4.         log_on_success  = HOST EXIT DURATION  
  5.         log_on_failure  = HOST ATTEMPT  
  6. #       only_from       = localhost           #允許哪些ip訪問服務  
  7.         instances       = 30  
  8.         cps             = 50 10  
  9. }  
  10. includedir /etc/xinetd.d    #由super daemon監管的所有daemon的配置文件存放目錄  
 

 

1.2.2 super daemon管理的daemo的配置文件講解(以rsync服務爲例):

 

Java代碼  收藏代碼
  1. service rsync  
  2. {  
  3.         socket_type     = stream  
  4.         protocol        = tcp  
  5.         wait            = no  
  6.         user            = root  
  7.         server          = /usr/sbin/rsyncd  
  8.         server_args     = --daemon  
  9.         disable         = no  
  10. }  

 服務名和/etc/xinetd.d/rsync腳本名稱必須一致,否則會出錯。

 

1.2.3 服務的防火牆 xinetd

任何以xinetd管理的服務都可以通過/etc/hosts.allow,/etc/hosts.deny來設置防火牆。

格式:

服務(即程序名稱) : ip domain hostname : 操作

注意:程序名需要在/etc/xinetd.d/*相關配置文件中查找server參數的值,如上面server=/usr/sbin/rsyncd,則表示rsync服務的程序名稱是rsyncd.



2. 系統服務設置
2.1 管理系統服務默認開機啓動與否
/sbin/chkconfig --list [服務名稱]
/sbin/chkconfig [--level [0123456]] [服務名稱] [on|off]
例如:
/sbin/chkconfig --level 35 rsync on #讓服務rsync在run level爲3,5時啓動。
/sbin/chkconfig rsync on #若不寫level,則默認爲3,5
/sbin/chkconfig --list
/sbin/chkconfig --list rsync
補充:more /etc/services #查看系統所有服務和相應端口

2.2 設置自己的系統服務
/sbin/chkconfig [--add|--del] 服務名稱
參數:
--add 增加一個服務名稱給chkconfig來管理,該服務名稱必須在/etc/init.d內

3 啓動流程
內核主動調用init進程
init進程開始執行系統初始化(/etc/rc.d/rc.sysinit)
依據init的設置進行daemon start(/etc/rc.d/rc[0-6].d/*)
加載本機設置(/etc/rc.d/rc.local)

補充:
1. 各腳本目錄解釋
Java代碼  收藏代碼
  1. /etc/init.d/*       #啓動腳本放置處  
  2. /etc/rc.d/init.d/           #CentOS放在此目錄  
  3. /etc/sysconfig/*    #各服務的初始化環境配置文件  
  4. /etc/xinetd.conf,/etc/xinetd/*  #super daemon配置文件  
  5. /etc/*          #各服務各自的配置文件  
  6. /var/lib/*          #各服務產生的數據庫  
  7. /var/run/*      #各服務的程序的PID記錄處  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章