注:
單用戶模式:啟動最小的服務,多余服務不開啟,僅保證系統自己可以正常運行。主要用於系統修復。
NFS:Linux和Linux之間進行文件共享服務
// 查看系統運行級別
// N:NULL。當前級別為3即字符界面,其上一個級別為N即為空,表示系統開機直接進入字符界面
#runlevel
N 3
// 修改系統運行級別
// 進入圖形級別,前提是安裝圖形界面
#init 5 // 若未安裝圖形界面則會報錯
#runlevel
3 5 // 仍然進入了5級別
// 不建議使用下面命令關機和重啟,不一定正確結束系統正在運行的服務;建議使用shutdown命令
// 關機
#init 0
// 重啟
#init 6
查看及修改系統默認的運行級別
// /etc/inittab文件現在沒有那麼重要,它的功能已經被其他配置文件所代替
#vim /etc/inittab
id:3:initdefault:
注:不要把開機啟動級別設置為0或6級別。
服務的分類
<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxjb2RlIGNsYXNzPQ=="hljs vala">RPM包與源碼包的區別:主要在安裝位置不一樣。
RPM包安裝在系統默認位置,一般不指定安裝位置,安裝包作者決定安裝的位置。
源碼包手工指定安裝位置,一般裝在/usr/local/目錄下。
獨立的服務和基於xinetd服務的區別:
獨立的服務:服務獨立的運行在內存中,服務響應速度快,但占用更多內存。
基於xinetd服務: xinetd服務是超級守護進程的一種。xinetd服務本身獨立存在,管理一些服務。用戶通過xinetd服務請求其管理的一些服務,然後xinetd返回請求服務的回復給用戶,xinetd服務相當於proxy一樣的角色。xinetd服務逐步被淘汰,大多數服務都是獨立的服務。
//查看服務自啟動服務
// 通過chkconfig查看的服務都是rpm包安裝且都是獨立的服務
#chkconfig --list
...
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off //在不同系統運行級別時服務的自動開啟狀態即是否自啟動
...
// 查看基於xinetd服務
// xinetd
#yum -y install xinetd
// 查看服務
#chkconfig --list // 會多一組顯示基於inetd服務的服務
啟動與自啟動
服務啟動:就是在當前系統中讓服務運行,並提供功能。
服務自啟動:自啟動是指讓五福在系統開機或重啟動之後,隨著系統的啟動而自動啟動服務。
注:在chkconfig –list 查看到服務在不同運行級別時,服務自啟動是否開啟,不能確定現在服務是否已經開啟。
查詢已安裝的服務
RPM包安裝的服務
chkconfig –list命令查看服務自啟動狀態,可以看到所有RPM包安裝的服務
源碼包安裝的服務
查看服務安裝位置,一般是/usr/local/目錄下
service、chkconfig、ntsysv都不能找到源碼包安裝的服務。
RPM包安裝服務和源碼包安裝服務的區別就是安裝位置的不同
源碼包一般安裝在/usr/local/目錄下
RPM包默認安裝位置
服務與端口
查看系統中開啟(已運行)服務
1 ps aux命令,顯示所有執行的進程包括服務進程,但這並不好用
2 netstat -tlun 顯示系統已運行(正在監聽)的服務,其他功能可以man netstat 查看
端口與服務對應
查看/etc/services文件,顯示常見的端口和服務
RPM包服務管理
常規rpm包文件安裝位置:
- /etc/init.d/ :啟動腳本位置
- /etc/sysconfig/ : 初始化環境配置文件位置
- /etc/ : 配置文件位置
- /etc/xinetd.conf : xinetd配置文件
- /etc/xinetd.d/ : 基於xinetd服務的啟動腳本
- /var/lib/ : 服務產生的數據放在這裡
- /var/log/ : 日志
獨立服務的管理
獨立服務的啟動
1 /etc/init.d/獨立服務名 start|stop|status|restart|
// 查看apache http服務的狀態,其中httpd為一個shell腳本文件
#/etc/init.d/httpd status
// 啟動apache服務
#/etc/init.d/httpd start
// 早期Linux版本服務管理腳本放在/etc/rc.d/init.d/目錄
#/etc/rc.d/init.d/httpd status
2 service 獨立服務名 start|stop|restart|status|
#service httpd status
注1:redhat系列的Linux才能使用service命令
注2:上面兩種方法一般無法管理源碼包啟動腳本,但可以把源碼包啟動腳本放置在/etc/init.d/目錄下統一管理
獨立服務的自啟動
1 chkconfig [–level 運行級別] [獨立服務名] [on|off]
#chkconfig --list |grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
#chkconfig --level 2345 httpd on
#chkconfig --list |grep httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#chkconfig httpd off
#chkconfig --list|grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
2 修改/etc/rc.d/rc.local文件
/etc/rc.d/rc.local文件是在系統啟動時,把所有的服務啟動完,用戶登錄到系統前最後執行的文件,因此系統會執行這個文件中的命令。
#vim /etc/rc.d/rc.local
touch /var/lock/subsys/local
/etc/init.d/httpd start // 添加開機啟動apache服務的命令
注1:通過修改/etc/rc.d/rc.local文件添加的開機啟動服務不能在chkconfig –list中顯示,這兩種管理方式不想關,選取一種即可。
注2:也可以修改/etc/rc.local文件,/etc/rc.local文件是/etc/rc.d/rc.local文件的軟連接
3 使用ntsysv命令管理自啟動
ntsysv命令和chkconfig命令是相關的,即通過哪一個修改,對方都能看見修改。
注:ntsysv是redhat系列的Linux命令。
基於xinetd服務的管理
1 安裝xinetd服務
#yum -y install xinetd
2 xinetd服務的啟動
// 顯示rsync服務的端口
#grep rsync /etc/services
#vim /etc/xinetd.d/rsync
service rsync
{
flags = REUSE // 設置TCP/IP socket可重用
socket_type = stream
wait = no // 允許多個連接同時連接
user = root // 啟動服務的用戶為root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID // 登錄失敗後,記錄用戶的ID
disable = no // 開啟rsync服務,開啟:no 關閉:yes
}
// 重啟動xinetd服務
#service xinetd restart
3 xinetd服務的自啟動
只有獨立的服務才有運行級別,基於xinetd的服務沒有運行級別,xinetd在哪個級別可以自啟動,rsync服務就在哪個級別可以自啟動
// 不能加運行級別
#chkconfig rsync on
#netstat -tlun|grep 873
tcp 0 0 :::873 :::* LISTEN
#chkconfig rsync off
// 查看rsync服務是否關閉,
#netstat -tlun|grep 873 // 無顯示,rync服務被關閉
#vim /etc/xinetd.d/rsync // 設置rsync服務的disable=no
#service xinetd restart
#netstat -tlun|grep 873
tcp 0 0 :::873 :::* LISTEN
// 使用圖形化界面的ntsysv找到rsync服務開啟即可
#ntsysv
注:由上面操作可知 xinetd服務的啟動和自啟動是一致的,即自啟動開啟關閉服務和啟動開啟關閉是一樣的。
源碼包服務管理
源碼包的安裝目錄中的安裝說明文檔中一般有啟動命令教程。如apache服務器的安裝說明為INSTALL。
源碼包安裝服務的啟動
使用絕對路徑,調用啟動腳本來啟動。不同的二元嗎包的啟動腳本不同。可以查看源碼包的安裝說明,查看啟動腳本的方法。
// 源碼包服務啟動
#/usr/local/apache2/bin/apachectl start|stop
// 源碼包中apache2服務首頁的修改
#vim /usr/local/apache2/htdocs/index.html
源碼包服務的自啟動
只能通過修改/etc/rc.d/rc.local文件加入啟動命令
#vim /etc/rc.d/rc.local // 加入/usr/local/apache2/bin/apachectl start即可
讓源碼包服務被服務管理命令識別
讓源碼包的apache服務能被service命令管理啟動
#ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
#service apache start
讓源碼包的apache服務能被chkconfig與ntsysv命令管理自啟動
#vim /etc/init.d/apache
// 在apache啟動腳本中添加
#chkconfig: 35 86 76 // 格式:chkconfig : 運行級別 啟動順序 關閉順序
#description: source package apache
// 把源碼包apache加入chkconfig 命令
#chkconfig --add apache
#chkconfig --list |grep apache
apache 0:關閉 1:關閉 2:關閉 3:開啟 4:關閉 5:開啟 6:關閉
// 這時,ntsysv命令也可以管理apache
#ntsysv
注:
// 格式:chkconfig : 運行級別 啟動順序 關閉順序
#chkconfig: 35 86 76
#cd /etc/rc3.d/ // 3代表系統純字符界面
#ls
// 顯示以k和s開頭文件文件
// k開頭的為kill,s開頭的為start,
// 系統進入3級別的時要把以s開頭的文件執行一遍,同理系統退出3級別時執行一遍k開頭的文件
// 啟動順序號和關閉順序號可以為隨意數字,但啟動順序號不能與/etc/rc3.d/目錄下已存在的s開頭文件的順序號重復,同理關閉順序號也不能與k開頭文件的順序號重復
服務管理總結
xmind思維導圖
常見的服務與管理
服務名稱
功能簡介
建議
acpid
電源管理接口。如果是筆記本用戶建議開啟,可以監聽內核層的相關電源事件。
開啟
anacron
系統的定時任務程序。cron的一個子系統,如果定時任務錯過了執行時間,可以通過anacron繼續喚醒執行
關閉
alsasound
Alsa聲卡驅動。如果使用alsa聲卡,開啟
關閉
apmd
電源管理模塊。如果支持acpid,就不需要apmd,可以關閉
關閉
atd
指定系統在特定時間執行某個人物,只能執行一次。如果需要則開啟,但一般使用crond來進行循環定時任務
關閉
auditd
審核子系統。如果開啟了此服務,SELinux的審核信息會寫入/var/log/audit/auxlit.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
daytime使用TCP協議的Daytime守護進程,該協議為客戶機實現從遠程服務器獲取日期和時間的功能
關閉
dovecot
郵件服務中POP3/IMAP服務的守護進程。主要用來接收信件,如果啟動了郵件服務則開啟,否則關閉
關閉
echo-dgram
服務器回顯客戶服務的進程
關閉
echo-stream
同上
關閉
firstboot
系統安裝完成之後,有個歡迎界面,需要對系統初始化設定,就是這個進程的作用。既然不是第一次啟動,關閉
關閉
gpm
在字符終端(tty1-tty6)中可以使用鼠標復制和粘貼。就是該服務的功能
開啟
haldaemon
檢測盒支持USB設備。服務器可以關閉,個人建議開啟
關閉
hidd
藍牙鼠標、鍵盤燈藍牙設備檢測。必須啟動bluetooth服務
關閉
hplip
HP打印機支持,如果沒有HP打印機關閉
關閉
httpd
apache服務的守護進程。如果需要啟動apache就開啟
開啟
ip6tables
IPv6的防火牆,目前IPv6協議並沒有使用,可以關閉
關閉
pitables
防火牆功能,Linux中防火牆是內核支持功能。這是服務器的主要防護手段,必須開啟
開啟
irda
IrDA提供紅外線設備間的通訊支持,關閉
關閉
irqbalance
支持多核持利器,讓CPU可以自動分配系統中斷(IRQ),提高系統性能。目前服務器是多核CPU,開啟
開啟
isdn
使用ISDN設備連接網絡。目前主流的聯網方式是光釬接入和ADSL,ISDN已經非常少見,關閉
關閉
kudzu
該服務可以在開機時進行硬件檢測,炳輝調用相關的設置軟件。建議關閉,需要時開啟
關閉
lvn2-monitor
該服務可以讓系統支持LVM邏輯卷組,如果分區采用的是LVM方式,那麼應該開啟,建議開啟
開啟
mcstrans
SELinux的支持服務,建議開啟
開啟
mdmonitor
該服務用來監測Software RAID或LVM的信息,不是必須服務,建議關閉
關閉
mdmpd
該服務用來監測Multi-Path設備,不是必須服務
關閉
messagebus
這是Linux的IPC(Interprocess Communication,進程間通訊)服務,用來在各個軟件中交換信息,建議關閉
關閉
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郵件服務的守護進程,如果有郵件服務就開啟,否則關閉
關閉
setrouleshoot
用於SELinux行管信息記錄在/var/log/messages中,建議開啟
開啟
smartd
該服務擁有自動檢測硬盤狀態,建議開啟
開啟
smb
網絡服務samba的守護進程。可以讓Linux和Windows之間共享數據,如果需要則開啟
關閉
squid
代理服務的守護進程,需要則開啟,否則關閉
關閉
sshd
ssh加密遠程登錄管理的服務。服務器的遠程管理必須使用此服務,不需要則關閉
syslog
日志的守護進程
開啟
vsftpd
vsftp服務的守護進程。需要FTP服務則開啟,否則關閉
關閉
xfs
這是XWindow的字體守護進程。為圖形界面提供字體服務。不需要啟動圖形界面就不開啟
關閉
xinetd
超級守護進程。如果有依賴xinetd的服務就開啟
開啟
ypbind
為NIS(網絡信息系統)客戶機激活ypbind服務進程
關閉
yum-updatesd
yum的在線升級服務
參考
慕課網Linux服務管理