第11章 服務管理,第11章服務

來源:互聯網
上載者:User

第11章 服務管理,第11章服務

本文目錄:

11.1 服務的概念

11.2 管理獨立守護進程

11.3 管理服務的開機自啟動

11.4 管理xinetd及相關瞬時守護進程

11.5 CentOS 7上管理服務

CentOS 7和CentOS 6管理服務的方式完全不同。本文先說明CentOS 6上的管理方式,在最後列出CentOS 7上服務管理方式。

11.1 服務的概念

服務是向外提供服務的進程,一般來說都會放在後台,既然要持續不斷的提供外界隨時發來的服務要求,服務進程就需要常駐在記憶體中,且不應該和終端有關,否則終端退出服務程式就退出了。另外,要能夠接待外界的請求為外界提供服務,那麼就需要有個專屬於這個服務的"服務視窗",這個服務視窗就是連接埠號碼,通過連接埠號碼就能找到服務的提供者。

提供服務的一端叫做服務端,向服務端請求服務的叫做用戶端。首先,服務端啟動服務進程,此時將開放對應的連接埠號碼;然後用戶端指定服務端IP地址和連接埠號碼向該服務端發起請求,服務端所在主機的核心接收到請求資料包,然後分析資料包發現請求的是某某連接埠號碼,核心知道該連接埠號碼是哪個應用程式監聽的連接埠,所以將請求報文發送給對應的應用程式,應用程式收到報文後,將和用戶端建立串連,並進行資料轉送。

另外需要注意的是,並非所有服務都總是提供連接埠號碼的,例如xinetd這個服務,只有在需要的時候才接管相應的連接埠,如rsync監聽連接埠為222時,那麼請求rsync時,xinetd在監聽過程中的連接埠號碼就是222。在不被請求的時候,xinetd是沒有連接埠號碼的。

 

在Linux中,服務分為獨立守護進程和超級守護進程。獨立守護進程是自行監聽在背景,基本上所有的服務都是獨立守護進程類的服務。超級守護進程專指xinetd這個服務,這個服務代為管理著一些特殊的服務,這類服務在被請求的時候才會由xinetd通知它啟動服務,服務提供完畢後就關閉服務,這類服務稱為瞬時守護進程,即只存在於瞬時。

但要明白,超級守護進程xinetd本身是一個常駐記憶體的獨立守護進程,因為它要監聽來自外界對其管理的瞬時守護進程的請求。只不過一般不工作的時候,xinetd不佔用連接埠號碼,在工作的時候它佔用被請求的瞬時守護進程的連接埠號碼,並處於監聽狀態。

11.2 管理獨立守護進程

在CentOS 6上,所有的服務指令碼都在/etc/rc.d/init.d/目錄下,/etc/init.d/是它的軟連結。在此目錄下的指令碼都是LSB風格的指令碼,它們基本上都能接受start/stop/restart/reload/status等參數。

[root@xuexi tmp]# ls /etc/init.dabrt-ccpp         cpuspeed   irqbalance    messagebus  psacct       saslauthdabrtd             crond      kdump         netconsole  quota_nld    singleabrt-oops         functions  killall       netfs       rdisc        smartdacpid             haldaemon  lvm2-lvmetad  network     restorecond  sshdatd               halt       lvm2-monitor  ntpd        rngd         svnserveauditd            ip6tables  mcelogd       ntpdate     rsyslog      sysstatblk-availability  iptables   mdmonitor     postfix     sandbox      udev-post

要管理獨立守護進程類的服務

/etc/init.d/service_name   restart|start|stop|status    # 方法一service  service_name    restart|start|stop|status    # 方法二

要讓服務能夠被service命令管理,將其服務指令碼放在/etc/init.d目錄下即可。

11.3 管理服務的開機自啟動

chkconfig命令能管理/etc/init.d/目錄下存在且指令碼的內容滿足一定條件的服務。

要能讓chkconfig管理服務的開機是否自啟動行為,只需將指令碼放在/etc/init.d目錄下,然後在指令碼的前部加上chkconfig行和description行。如:

#!/bin/bash# chkconfig: - 85 15# description: The Apache HTTP Server is an efficient and extensible

這兩行必須在所有非注釋行的前面,且這兩行必須得被"注釋"。其中chkconfig行"-"表示適用於運行層級123456上,85表示開機啟動時,它的啟動順序為85,15表示關機停止服務時,它的停止順序為15。description行隨便給一點描述資訊就可以,但是必須得給"description:"關鍵字。

然後,就可以有chkconfig來管理服務的開機自啟動了。

chkconfig [--add | --del] <name>  # 將/etc/init.d中可以被chkconfig管理的服務添加到chkconfig的管理列表中,或者從列表中刪除chkconfig [--list] [name]         # 列出指定名稱的服務的開啟自啟動資訊。name可以使用all來表示列出所有chkconfig管理列表中的服務chkconfig [--level <levels>] <name> <on|off|reset>  # 將指定名稱的服務在指定層級上開啟開機自啟動或關閉開機自啟動功能。                                                    # reset則表示重設為指令碼中指定的層級

當然,除了chkconfig可以管理開機自啟動,將啟動命令放在/etc/rc.d/rc.local檔案中也是可以的。

11.4 管理xinetd及相關瞬時守護進程11.4.1 管理瞬時守護進程

該類服務不能直接使用service命令來啟動。只能去/etc/xinetd.d/目錄下的對應檔案中進行設定(當然,也可以在/etc/xinetd.conf中配置),然後由xinetd進行管理。

首先安裝xinetd程式。

[root@xuexi tmp]# yum -y install xinetd[root@xuexi tmp]# chkconfig --list......省略xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:offxinetd based services:        chargen-dgram:  off        chargen-stream: off        daytime-dgram:  off        daytime-stream: off        discard-dgram:  off        discard-stream: off        echo-dgram:     off        echo-stream:    off        rsync:          off        tcpmux-server:  off        time-dgram:     off        time-stream:    off

首先得保證xinetd是已經工作在背景。

service xinetd start

然後管理瞬時守護進程,該類服務比較特別,其自啟動狀態和服務運行狀態是同步的,也就是說chkconfig設定了其自啟動則表示啟動該服務,否則為停止該服務。另外,對其指定層級是無效的,它們的啟動層級繼承與xinetd的啟動層級,並且xinetd會接管其觸發的瞬時守護進程的連接埠號碼。

例如啟動rsync這個瞬時守護進程。

chkconfig rsync on
11.4.2 瞬時守護進程的配置

瞬時守護進程受兩個設定檔控制,一個是xinetd的設定檔/etc/xinetd.conf提供預設配置,一個是/etc/xinetd.d/下的設定檔針對對應的服務提供配置。

例如配置rsync,以下是/etc/xinetd.d/rsync的預設配置。

[root@xuexi tmp]# vi /etc/xinetd.d/rsync# default: off      # description: The rsync server is a good addition to an ftp server, as it \#       allows crc checksumming etc.service rsync        # 定義rsync服務,名稱要和/etc/xinetd.d/下的檔案同名{        disable         = yes      # yes表示不啟動,no表示啟動,等價於chkconfig rsync {on|off},所以這裡設定後將直接在chkconfig中生效        flags           = IPv6     # 不用管        socket_type     = stream   # 這代表的是tcp類型的通訊端        wait            = no       # 該服務是單線程還是多線程的,表現形式是超出的請求是否進行等待,no表示多線程        user            = root     # 以什麼身份運行rsync        server          = /usr/bin/rsync # 服務程式        server_args     = --daemon # 服務程式啟動時傳遞的參數        log_on_failure  += USERID  # 串連失敗的日誌記錄,+表示在全域對應的條目上新增此處指定的USERID}

除此之外,還有幾個選項:

【存取控制選項】以下兩個控制列表中最好不要出現衝突的地址。only_from:定義允許串連的存取控制清單,支援單IP,CIDR格式和長mask格式的網段,主機名稱hostname,域DOMAIN(.abc.com)no_access:定義不允許訪問的列表,文法格式同only_from【監聽地址】bind       = ip_addrinterface  = ip_addr  # 等價於bind【資源控制】cps=args1 args2instances=Nper_source=N

這3個選項的意義如。

11.5 CentOS 7上管理服務

service name start    ==> systemctl start name.service

service name stop    ==> systemctl stop name.service

service name restart ==> systemctl restart name.service

service name status  ==> systemctl status name.service

 

查看服務是否啟用(在運行中):systemctl is-active name.service

查看所有已經啟用                 :systemctl list-units --type service

查看所有服務                        :systemctl list-units --type service --all

 

設定開機自啟動:chkconfig name on ==> systemctl enable name.service

禁止開機自啟動:chkconfig name off ==> systemctl disable name.service

查看服務是否開機自啟動:chkconfig --list name ==> is-enabled name.service

查看所有服務的開機自啟動狀態:chkconfig --list ==> systemctl list-unit-files --type service

 

回到系列文章大綱:http://www.cnblogs.com/f-ck-need-u/p/7048359.html

轉載請註明出處:http://www.cnblogs.com/f-ck-need-u/p/7059321.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.