首頁  >  文章  >  運維  >  linux的服務分為哪兩大類

linux的服務分為哪兩大類

青灯夜游
青灯夜游原創
2022-04-12 18:57:242901瀏覽

linux的服務依管理方式分為「stand-alone」和「super-daemon」兩大類,也就是獨立管理服務和統一管理服務。獨立管理服務可以自行獨立啟動,無需透過其他機制的管理;而統一管理服務透過一個統一的daemon來負責啟動、管理。

linux的服務分為哪兩大類

本教學操作環境:CentOS6系統、Dell G3電腦。

Linux系統的服務,又稱為daemon,是指常駐在記憶體中持續運行,以提供所需服務(系統或網路服務)的進程。

分類

Linux系統的服務依管理方式主要有兩大類:stand-alone和super-daemon,即獨立管理服務和統一管理服務。

stand-alone:這種類型的服務機制較為簡單,可以獨立啟動服務。其特點是:

1、可以自行獨立啟動,無需透過其他機制的管理
2、stand-alone服務一旦啟動載入到記憶體後,就會一直佔用記憶體空間和系統資源,知道該服務被停止。
3、由於服務一直在運行,所以對client的請求有更快的回應速度。

典型的stand-alone服務有:httpd、和ftp

#super-daemon:這種管理機制透過一個統一的daemon來負責啟動、管理其他服務。在 CentOS6.X 中這個super-daemon就是xinetd這個程式。特點有:

1、所有的服務由xinetd控管,因此對xinetd可以有安全控管的機制,如網路防火牆
2、clinet請求前,所需服務是未啟動的;直到client要求服務時,xinetd才會喚醒對應服務;一旦連線結束後,對應服務就會關閉。所以super-daemon方式不會一直佔用系統資源
3、既然有請求才會去啟動服務,所以server端的回應速度自然不如stand-alone方式來得快

典型的super -daemon服務有:telnet等

不同的啟動方式

Linux中的不同的服務都有不同的啟動腳本,以便在服務啟動前進行環境的偵測、設定檔的分析、PID檔的規劃等相關操作。 stand-alone方式和super-daemon方式的啟動腳本放置位置有所不同,啟動方式自然也是有差別的。

stand-alone

#啟動腳本

stand-alone方式的啟動腳本位於/etc/init.d/目錄下,事實上幾乎所有的服務啟動腳本都在這裡。

[root@localhost init.d]# ls /etc/init.d/
abrt-ccpp         htcacheclean    ntpd         smartd
abrtd             httpd           ntpdate      snmpd
xinetd
 ......(省略)

你有沒有發現目錄下不只httpd這些我們已知的stand-alone服務啟動腳本,竟然還有xinetd!這說明什麼?
這說明xinetd這個服務其實也是使用stand-alone的管理方式。你想啊,因為xinetd要負責啟用停止許多super-daemon的服務,那它是不是得常駐記憶體~

啟動方法

##方法一:由於所有的啟動腳本都在/etc/init.d/裡了,所以所有直接呼叫都不就好了!

[root@localhost init.d]# /etc/init.d/crond 
Usage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
直接呼叫它會告訴你Usage,那

[root@localhost init.d]# /etc/init.d/crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]
就是這樣簡單啦!

方法二:也可以使用service這個腳本:

[root@localhost init.d]# service crond status
crond (pid  3278) is running...
這樣比較簡單,不過service只能用來管理stand-alone的服務。

还有,这个用法可以查看系统所有stand-alone服务的状态

[root@localhost init.d]# service --status-all
abrt-ccpp hook is installed
abrtd (pid  2331) is running...
abrt-dump-oops is stopped
acpid (pid  1807) is running...
......(省略)

NOTE:鑑於service這個腳本不是所有Linux發行版都有,所以還是建議使用/etc/init.d/* [action]的方式較好。也有助於理解原理~~~

##super-daemon

啟動腳本 super-daemon方式的啟動腳本放在了/etc/xinetd.d/中。

[root@localhost xinetd.d]# ls /etc/xinetd.d/
chargen-dgram   daytime-stream  echo-dgram   tcpmux-server  time-stream
......(省略)

查看super-daemon方式啟動的服務有哪些:

方式一:使用chkconfig可以看到xinetd based services一項中服務的啟動情況:

[root@localhost xinetd.d]# chkconfig 
......
xinetd based services:
    echo-dgram:     off
    echo-stream:    off
    rsync:          off
    tcpmux-server:  off
    telnet:         on
    ......

方式二:直接檢視服務的啟動腳本

[root@localhost xinetd.d]# grep -i 'disable' /etc/xinetd.d/*
......
/etc/xinetd.d/daytime-dgram:    disable     = yes
/etc/xinetd.d/daytime-stream:   disable     = yes
/etc/xinetd.d/discard-dgram:    disable     = yes
/etc/xinetd.d/discard-stream:   disable     = yes
/etc/xinetd.d/echo-dgram:   disable     = yes
/etc/xinetd.d/telnet:   disable = no
......

上面disable= no就表示該服務已開啟。


啟動方法我們已經知道啟動腳本中有一項disable= no的就表示該服務已開啟,所以我們的啟動方式是:

1、先編輯啟動腳本,將需要開啟的服務disable一項改為no

2、然後重啟xinetd:/etc/init.d/xintd restart【因為xinetd本身就是stand-alone的服務】


相關推薦:《

Linux影片教學

以上是linux的服務分為哪兩大類的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn