linux的服務(wù)分為哪兩大類

linux的服務(wù)按管理方式分為“stand-alone”和“super-daemon”兩大類,也就是獨(dú)立管理服務(wù)和統(tǒng)一管理服務(wù)。獨(dú)立管理服務(wù)可以自行獨(dú)立啟動(dòng),無(wú)需通過其他機(jī)制的管理;而統(tǒng)一管理服務(wù)通過一個(gè)統(tǒng)一的daemon來負(fù)責(zé)啟動(dòng)、管理。

linux的服務(wù)分為哪兩大類

本教程操作環(huán)境:CentOS6系統(tǒng)、Dell G3電腦。

Linux系統(tǒng)的服務(wù),又稱為daemon,是指常駐在內(nèi)存中持續(xù)運(yùn)行,以提供所需服務(wù)(系統(tǒng)或網(wǎng)絡(luò)服務(wù))的進(jìn)程。

分類

Linux系統(tǒng)的服務(wù)按管理方式主要有兩大類:stand-alone和super-daemon,即獨(dú)立管理服務(wù)和統(tǒng)一管理服務(wù)。

stand-alone:這種類型的服務(wù)機(jī)制較為簡(jiǎn)單,可以獨(dú)立啟動(dòng)服務(wù)。其特點(diǎn)是:

1、可以自行獨(dú)立啟動(dòng),無(wú)需通過其他機(jī)制的管理
2、stand-alone服務(wù)一旦啟動(dòng)加載到內(nèi)存后,就會(huì)一直占用內(nèi)存空間和系統(tǒng)資源,知道該服務(wù)被停止。
3、由于服務(wù)一直在運(yùn)行,所以對(duì)client的請(qǐng)求有更快的響應(yīng)速度。

典型的stand-alone服務(wù)有:httpd、和ftp

super-daemon:這種管理機(jī)制通過一個(gè)統(tǒng)一的daemon來負(fù)責(zé)啟動(dòng)、管理其他服務(wù)。在 CentOS6.X 中這個(gè)super-daemon就是xinetd這個(gè)程序。特點(diǎn)有:

1、所有的服務(wù)由xinetd控管,因此對(duì)xinetd可以有安全控管的機(jī)制,如網(wǎng)絡(luò)防火墻
2、clinet請(qǐng)求前,所需服務(wù)是未啟動(dòng)的;直到client請(qǐng)求服務(wù)時(shí),xinetd才會(huì)喚醒相應(yīng)服務(wù);一旦連接結(jié)束后,相應(yīng)服務(wù)會(huì)被關(guān)閉。所以super-daemon方式不會(huì)一直占用系統(tǒng)資源
3、既然有請(qǐng)求才會(huì)去啟動(dòng)服務(wù),所以server端的響應(yīng)速度自然不如stand-alone方式來得快

典型的super-daemon服務(wù)有:telnet等

不同的啟動(dòng)方式

Linux中的不同的服務(wù)都有不同的啟動(dòng)腳本,以在服務(wù)啟動(dòng)前進(jìn)行環(huán)境的檢測(cè)、配置文件的分析、PID文件的規(guī)劃等相關(guān)操作。stand-alone方式和super-daemon方式的啟動(dòng)腳本放置位置有所不同,啟動(dòng)方式自然也是有區(qū)別的。

stand-alone

啟動(dòng)腳本

stand-alone方式的啟動(dòng)腳本位于/etc/init.d/目錄下,事實(shí)上幾乎所有的服務(wù)啟動(dòng)腳本都在這里。

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

你有沒有發(fā)現(xiàn)該目錄下不僅有httpd這些我們已知的stand-alone服務(wù)啟動(dòng)腳本,竟然還有xinetd!這說明什么?
這說明xinetd這個(gè)服務(wù)其實(shí)也是使用stand-alone的管理方式。你想啊,因?yàn)閤inetd要負(fù)責(zé)啟用停止許多super-daemon的服務(wù),那它是不是得常駐內(nèi)存~

啟動(dòng)方法

方法一:由于所有的啟動(dòng)腳本都在/etc/init.d/里了,所有直接調(diào)用不就好了!

[root@localhost init.d]# /etc/init.d/crond  Usage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

直接調(diào)用它會(huì)告訴你Usage,那

[root@localhost init.d]# /etc/init.d/crond restart Stopping crond:                                            [  OK  ] Starting crond:                                            [  OK  ]

就是這樣簡(jiǎn)單啦!

方法二:還可以使用service這個(gè)腳本:

[root@localhost init.d]# service crond status crond (pid  3278) is running...

這樣更簡(jiǎn)單,不過service只能用來管理stand-alone的服務(wù)。

還有,這個(gè)用法可以查看系統(tǒng)所有stand-alone服務(wù)的狀態(tài)  [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這個(gè)腳本不是所有Linux發(fā)行版都有,所以還是建議使用/etc/init.d/* [action]的方式較好。還有助于理解原理~~~

super-daemon

啟動(dòng)腳本

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

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

查看 super-daemon方式啟動(dòng)的服務(wù)有哪些:
方式一:使用chkconfig可以看到xinetd based services一項(xiàng)中服務(wù)的啟動(dòng)情況:

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

方式二:直接查看服務(wù)的啟動(dòng)腳本

[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就表示該服務(wù)已開啟。

啟動(dòng)方法

我們已經(jīng)知道啟動(dòng)腳本中有一項(xiàng)disable= no的就表示該服務(wù)已開啟,所以我們的啟動(dòng)方式就是:

1、先編輯啟動(dòng)腳本,將需要開啟的服務(wù)disable一項(xiàng)改為no
2、然后重啟xinetd:/etc/init.d/xintd restart【因?yàn)閤inetd本身是stand-alone的服務(wù)】

相關(guān)推薦:《Linux視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享