服務的分類
Linux 中的服務按照安裝方法不同可以分為 RPM 包默認安裝的服務和源碼包安裝的服務兩大類。其中,RPM 包默認安裝的服務又因為啟動與自啟動管理方法不同分為獨立的服務和基於 xinetd 的服務。服務分類的關系圖如圖 1 所示。

圖 1 服務分類的關系圖
RPM包和源碼包最主要的區別是安裝位置不同,RPM 包安裝到系統默認位置當中(可以通過"rpm -ql 包名"命令查詢),可以被服務管理命令識別(如 service、chkconfig);源碼包安裝到手工指定位置(一般會安裝到 /usr/local/ 目錄中),不能被服務管理命令識別(可以手工修改為被服務管理命令識別)。
通過 RPM 包安裝的服務又可以分為兩種:
- 獨立的服務:這種服務可以自行啟動,而不用依賴其他的管理服務。因為不依賴其他的管理服務,所以,當客戶端請求訪問時,獨立的服務響應請求更快速。目前,Linux 中的大多數服務都是獨立的服務,如 apache 服務、FTP 服務、Samba 服務等。
- 基於 xinetd 的服務:這種服務不能獨立啟動,而要依靠管理服務來調用。這個負責管理的服務就是 xinetd 服務。xinetd 服務是系統的超級守護進程,其作用就是管理不能獨立啟動的服務。當有客戶端請求時,先請求 xinetd 服務,由 xinetd 服務去喚醒相對應的服務。當客戶端請求結束后,被喚醒的服務會關閉並釋放資源。這樣做的好處是只需要持續啟動 xinetd 服務,而其他基於 xinetd 的服務只有在需要時才被啟動,不會占用過多的服務器資源。但是這種服務由於在有客戶端請求時才會被喚醒,所以響應時間相對較長。
管理系統服務的命令
管理服務的命令格式
- | CentOS6 | CentOS7 |
啟動 | service 服務名稱 start | systemctl start name.service |
停止 | service 服務名稱 stop | systemctl stop name.service |
重啟 | service 服務名稱 restart | systemctl restart name.service |
狀態 | service 服務名稱 status | systemctl status name.service |
重載或重啟服務(先加載,再啟動) | -- | systemctl reload-or-restart name.service |
chkconfig命令的對應關系
- | CentOS6 | CentOS7 |
設定某個服務開機自啟 | chkconfig 服務名稱 on | systemctl enable name.service |
設定某個服務開機禁止啟動 | chkconfig 服務名稱 off | systemctl disable name.service |
查看所有服務開機自啟狀態 | chkconfig --list | systemctl list-unit-files --type service |
查看某個服務在哪些運行級別下的啟動和禁用 | chkconfig 服務名稱 --list | ls /etc/systemd/system/*.wants/服務名稱.service |
查看服務是否開啟自啟 | -- | systemctl is-enable name.service |
服務狀態
使用下面命令可以顯示服務及服務對用的狀態
[root@localhost ~]# systemctl list-unit-files
UNIT FILE STATE
network.target static
sshd.service enabled
.......省略部分輸出............
服務對應的狀態
- loaded:Unit配置文件已處理
- active(running):一次或持續處理的運行
- active(exited):成功完成一次性的配置
- active(waitong):運行中,等待一個事件
- inactive:不運行
- enabled:開啟啟動
- disabled:開機不啟動
- static:開啟不啟動,但可以被另一個啟動的服務激活
查看基於 xinetd 的服務
因為系統中默認沒有安裝 xinetd 這個超級守護進程,需要手工安裝。安裝命令如下:
[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/ xinetd-2.3.14-34.el6.i686.rpm Preparing... ############### [100%] 1:xinetd ############### [100%]
在 Linux 中基於 xinetd 的服務越來越少,原先很多基於 xinetd 的服務在新版本的 Linux 中已經變成了獨立的服務。安裝完 xinetd 超級守護進程之后,我們再查看一下,命令如下:
[root@localhost ~]# systemctl list-unit-files |grep xinetd
基於 xinetd 的服務沒有自己的運行級別,因為它們不是獨立的服務,到底在哪個運行級別可以自啟動,則要看 xinetd 服務是在哪個運行級別自啟動的。
Linux常見服務類別及功能
在Linux系統中,服務啟動得越多,占用的系統資源就越多。常見的服務如下:
服務名稱 | 功能簡介 | 建議 |
---|---|---|
acpid | 電源管理接口。如果是筆記本電腦用戶,則建議開啟,可以監聽內核層的相關電源事件 | 開啟 |
anacron | 系統的定時任務程序。是 cron 的一個子系統,如果定時任務錯過了執行時間,則可以通過 anacron 繼續喚醒執行 | 關閉 |
alsasound | alsa 聲卡驅動。如果使用 alsa 聲卡,則開啟 | 關閉 |
apmd | 電源管理模塊。如果支持 acpid,就不需要 apmd,可以關閉 | 關閉 |
atd | 指定系統在特定時間執行某個任務,只能執行一次。如果需要則開啟,但我們一般使用 crond 來執行循環定時任務 | 關閉 |
auditd | 審核子系統。如果開啟了此服務,那么SELinux的審核信息會寫入 /var/log/audit/ audit.log 文件; 如果不開啟,那么審核信息會記錄在syslog中 |
開啟 |
autofs | 讓服務器可以自動掛載網絡中其他服務器的共享數據,一般用來自動掛載 NFS 服務。如果沒有 NFS 服務,則建議關閉 | 關閉 |
avahi-daemon | avahi 是 zeroconf 協議的實現,它可以在沒有 DNS 服務的局域網里發現基於 zeroconf 協議的設備和服務。 除非有兼容設備或使用 zeroconf 協議,否則關閉 |
關閉 |
bluetooth | 藍牙設備支持。一般不會在服務器上啟用藍牙設備,關閉它 | 關閉 |
capi | 僅對使用 ISND 設備的用戶有用 | 關閉 |
chargen-dgram | 使用 UDP 協議的 chargen server。其主要提供類似遠程打字的功能 | 關閉 |
chargen-stream | 同上 | 關閉 |
cpuspeed | 可以用來調整 CPU 的頻率。當閑置時,可以自動降低 CPU 頻率來節省電量 | 開啟 |
crond | 系統的定時任務,一般的 Linux 服務器都需要定時任務來協助系統維護。建議開啟 | 開啟 |
cvs | 一個版本控制系統 | 關閉 |
daytime-dgram | 使用 TCP 協議的 daytime 守護進程,該協議為客戶機實現從遠程服務器獲取日期和時間的功能 | 關閉 |
daytime-slream | 同上 | 關閉 |
dovecot | 郵件服務中 POP3/IMAP 服務的守護進程,主要用來接收信件。如果啟動了郵件服務則開啟:否則關閉 | 關閉 |
echo-dgram | 服務器回顯客戶服務的進程 | 關閉 |
echo-stream | 同上 | 關閉 |
firstboot | 系統安裝完成后,有一個歡迎界面,需要對系統進行初始設定,這就是這個服務的作用。 既然不是第一次啟動了,則建議關閉 |
關閉 |
gpm | 在字符終端 (ttyl~tty6) 中可以使用鼠標復制和粘貼,這就是這個服務的功能 | 開啟 |
haldaemon | 檢測和支持 USB 設備。如果是服務器則可以關閉,個人機則建議開啟 | 關閉 |
hidd | 藍牙鼠標、鍵盤等藍牙設備檢測。必須啟動 bluetooth 服務 | 關閉 |
hplip | HP 打印機支持,如果沒有 HP 打印機則關閉 | 關閉 |
httpd | apache 服務的守護進程。如果需要啟動 apache,就開啟 | 開啟 |
ip6tables | IPv6 的防火牆。目前 IPv6 協議並沒有使用,可以關閉 | 關閉 |
iptables | 防火牆功能。Linux 中的防火牆是內核支持功能。這是服務器的主要防護手段,必須開啟 | 開啟 |
irda | IrDA 提供紅外線設備(筆記本電腦、PDA’s、手機、計算器等)間的通信支持。建議關閉 | 關閉 |
irqbalance | 支持多核處理器,讓 CPU 可以自動分配系統中斷(IRQ),提高系統性能。目前服務器多是多核 CPU,請開啟 | 開啟 |
isdn | 使用 ISDN 設備連接網絡。目前主流的聯網方式是光纖接入和 ADSL,ISDN 己經非常少見,請關閉 | 關閉 |
kudzu | 該服務可以在開機時進行硬件檢測,並會調用相關的設置軟件。建議關閉,僅在需要時開啟 | 關閉 |
lvm2-monitor | 該服務可以讓系統支持LVM邏輯卷組,如果分區采用的是LVM方式,那么應該開啟。建議開啟 | 開啟 |
mcstrans | SELinux 的支持服務。建議開啟 | 開啟 |
mdmonitor | 該服務用來監測 Software RAID 或 LVM 的信息。不是必需服務,建議關閉 | 關閉 |
mdmpd | 該服務用來監測 Multi-Path 設備。不是必需服務,建議關閉 | 關閉 |
messagebus | 這是 Linux 的 IPC (Interprocess Communication,進程間通信)服務,用來在各個軟件中交換信息。建議關閉 | 關閉 |
microcode _ctl | Intel 系列的 CPU 可以通過這個服務支持額外的微指令集。建議關閉 | 關閉 |
mysqld | MySQL 數據庫服務器。如果需要就開啟;否則關閉 | 開啟 |
named | DNS 服務的守護進程,用來進行域名解析。如果是 DNS 服務器則開啟;否則關閉 | 關閉 |
netfs | 該服務用於在系統啟動時自動掛載網絡中的共享文件空間,比如 NFS、Samba 等。 需要就開啟,否則關閉 | 關閉 |
network | 提供網絡設罝功能。通過這個服務來管理網絡,建議開啟 | 開啟 |
nfs | NFS (Network File System) 服務,Linux 與 Linux 之間的文件共享服務。需要就開啟,否則關閉 | 關閉 |
nfslock | 在Linux中如果使用了NFS服務,那么,為了避免同一個文件被不同的用戶同時編輯,所以有這個鎖服務。 有NFS時開啟,否則關閉 |
關閉 |
ntpd | 該服務可以通過互聯網自動更新系統時間.使系統時間永遠准確。需要則開啟,但不是必需服務 | 關閉 |
pcscd | 智能卡檢測服務,可以關閉 | 關閉 |
portmap | 用在遠程過程調用 (RPC) 的服務,如果沒有任何 RPC 服務,則可以關閉。主要是 NFS 和 NIS 服務需要 | 關閉 |
psacct | 該守護進程支持幾個監控進程活動的工具 | 關閉 |
rdisc | 客戶端 ICMP 路由協議 | 關閉 |
readahead_early | 在系統開啟的時候,先將某些進程加載入內存整理,可以加快啟動速度 | 關閉 |
readahead_later | 同上 | 關閉 |
restorecond | 用於給 SELinux 監測和重新加載正確的文件上下文。如果開啟 SELinux,則需要開啟 | 關閉 |
rpcgssd | 與 NFS 有關的客戶端功能。如果沒有 NFS 就關閉 | 關閉 |
rpcidmapd | 同上 | 關閉 |
rsync | 遠程數據備份守護進程 | 關閉 |
sendmail | sendmail 郵件服務的守護進程。如果有郵件服務就開啟;否則關閉 | 關閉 |
setroubleshoot | 該服務用於將 SELinux 相關信息記錄在日志 /var/log/messages 中。建議開啟 | 開啟 |
smartd | 該服務用於自動檢測硬盤狀態。建議開啟 | 開啟 |
smb | 網絡服務 samba 的守護進程。可以讓 Linux 和 Windows 之間共享數據。如果需要則開啟 | 關閉 |
squid | 代理服務的守護進程。如果需要則開啟:否則關閉 | 關閉 |
sshd | ssh 加密遠程登錄管理的服務。服務器的遠程管理必須使用此服務,不要關閉 | 開啟 |
syslog | 日志的守護進程 | 開啟 |
vsftpd | vsftp 服務的守護進程。如果需要 FTP 服務則開啟;否則關閉 | 關閉 |
xfs | 這是 X Window 的字體守護進程,為圖形界面提供字體服務。如果不啟動圖形界面,就不用開啟 | 關閉 |
xinetd | 超級守護進程。如果有依賴 xinetd 的服務,就必須開啟 | 開啟 |
ypbind | 為 NIS (網絡信息系統)客戶機激活 ypbind 服務進程 | 關閉 |
yum-updatesd | yum 的在線升級服務 | 關閉 |