CentOS 7.x開始,CentOS開始使用systemd服務(wù)來代替daemon,原來管理系統(tǒng)啟動(dòng)和管理系統(tǒng)服務(wù)的相關(guān)命令全部由systemctl命令來代替。
1、原來的 service 命令與 systemctl 命令對比
daemon命令systemctl命令說明
service [服務(wù)] startsystemctl start [unit type]啟動(dòng)服務(wù)
service [服務(wù)] stopsystemctl stop [unit type]停止服務(wù)
service [服務(wù)] restartsystemctl restart [unit type]重啟服務(wù)
此外還是二個(gè)systemctl參數(shù)沒有與service命令參數(shù)對應(yīng)
status:參數(shù)來查看服務(wù)運(yùn)行情況
reload:重新加載服務(wù),加載更新后的配置文件(并不是所有服務(wù)都支持這個(gè)參數(shù),比如network.service)
應(yīng)用舉例:
#啟動(dòng)網(wǎng)絡(luò)服務(wù)systemctl start network.service#停止網(wǎng)絡(luò)服務(wù)systemctl stop network.service#重啟網(wǎng)絡(luò)服務(wù)systemctl restart network.service#查看網(wǎng)絡(luò)服務(wù)狀態(tài)systemctl status network.serivce
2、原來的chkconfig 命令與 systemctl 命令對比
2.1、設(shè)置開機(jī)啟動(dòng)/不啟動(dòng)
daemon命令systemctl命令說明
chkconfig [服務(wù)] onsystemctl enable [unit type]設(shè)置服務(wù)開機(jī)啟動(dòng)
chkconfig [服務(wù)] offsystemctl disable [unit type]設(shè)備服務(wù)禁止開機(jī)啟動(dòng)
應(yīng)用舉例:
#停止cup電源管理服務(wù)systemctl stop cups.service#禁止cups服務(wù)開機(jī)啟動(dòng)systemctl disable cups.service#查看cups服務(wù)狀態(tài)systemctl status cups.service#重新設(shè)置cups服務(wù)開機(jī)啟動(dòng)systemctlenablecups.service
命令格式:
systemctl [command] [–type=TYPE] [–all]
參數(shù)詳解:
command- list-units:依據(jù)unit列出所有啟動(dòng)的unit。加上 –all 才會(huì)列出沒啟動(dòng)的unit; - list-unit-files:依據(jù)/usr/lib/systemd/system/ 內(nèi)的啟動(dòng)文件,列出啟動(dòng)文件列表
–type=TYPE- 為unit type, 主要有service, socket, target
應(yīng)用舉例:
systemctl命令說明
systemctl列出所有的系統(tǒng)服務(wù)
systemctl list-units列出所有啟動(dòng)unit
systemctl list-unit-files列出所有啟動(dòng)文件
systemctl list-units –type=service –all列出所有service類型的unit
systemctl list-units –type=service –all grep cpu列出 cpu電源管理機(jī)制的服務(wù)
systemctl list-units –type=target –all列出所有target
systemctl命令說明
systemctl is-active [unit type]查看服務(wù)是否運(yùn)行
systemctl is-enable [unit type]查看服務(wù)是否設(shè)置為開機(jī)啟動(dòng)
systemctl mask [unit type]注銷指定服務(wù)
systemctl unmask [unit type]取消注銷指定服務(wù)
應(yīng)用舉例:
#查看網(wǎng)絡(luò)服務(wù)是否啟動(dòng)systemctl is-active network.service#檢查網(wǎng)絡(luò)服務(wù)是否設(shè)置為開機(jī)啟動(dòng)systemctl is-enable network.service#停止cups服務(wù)systemctl stop cups.service#注銷cups服務(wù)systemctl mask cups.service#查看cups服務(wù)狀態(tài)systemctl status cups.service#取消注銷cups服務(wù)systemctl unmask cups.service
init命令systemctl命令說明
init 0systemctl poweroff系統(tǒng)關(guān)機(jī)
init 6systemctl reboot重新啟動(dòng)
與開關(guān)機(jī)相關(guān)的其他命令:
systemctl命令說明
systemctl suspend進(jìn)入睡眠模式
systemctl hibernate進(jìn)入休眠模式
systemctl rescue強(qiáng)制進(jìn)入救援模式
systemctl emergency強(qiáng)制進(jìn)入緊急救援模式
init級別systemctl target
0shutdown.target
1emergency.target
2rescure.target
3multi-user.target
4無
5graphical.target
6無
此外還是一個(gè)getty.target用來設(shè)置tty的數(shù)量。
命令格式:
systemctl[command][unit.target]
參數(shù)詳解:
command:
get-default :取得當(dāng)前的target
set-default :設(shè)置指定的target為默認(rèn)的運(yùn)行級別
isolate :切換到指定的運(yùn)行級別
unit.target :為5.1表中列出的運(yùn)行級別
systemctl命令說明
systemctl get-default獲得當(dāng)前的運(yùn)行級別
systemctl set-default multi-user.target設(shè)置默認(rèn)的運(yùn)行級別為mulit-user
systemctl isolate multi-user.target在不重啟的情況下,切換到運(yùn)行級別mulit-user下
systemctl isolate graphical.target在不重啟的情況下,切換到圖形界面下
6、使用systemctl分析各服務(wù)之前的依賴關(guān)系
命令格式:
systemctl list-dependencies[unit][–reverse]
–reverse是用來檢查尋哪個(gè)unit使用了這個(gè)unit
應(yīng)用舉例:
#獲得當(dāng)前運(yùn)行級別的target[root@www ~]# systemctl get-defaultmulti-user.target#查看當(dāng)前運(yùn)行級別target(mult-user)啟動(dòng)了哪些服務(wù)[root@www ~]# systemctl list-dependenciesdefault.target├─abrt-ccpp.service├─abrt-oops.service├─vsftpd.service├─basic.target│ ├─alsa-restore.service│ ├─alsa-state.service.....(中間省略).....│ ├─sockets.target│ │ ├─avahi-daemon.socket│ │ ├─dbus.socket.....(中間省略).....│ ├─sysinit.target│ │ ├─dev-hugepages.mount│ │ ├─dev-mqueue.mount.....(中間省略).....│ └─timers.target│? └─systemd-tmpfiles-clean.timer├─getty.target│ └─getty@tty1.service└─remote-fs.target#查看哪些target引用了當(dāng)前運(yùn)行級別的target[root@www ~]# systemctl list-dependencies --reversedefault.target└─graphical.target
在使用systemctl關(guān)閉網(wǎng)絡(luò)服務(wù)時(shí)有一些特殊 需要同時(shí)關(guān)閉unit.servce和unit.socket
使用systemctl查看開啟的sshd服務(wù)
[root@www system]#? systemctl list-units --all | grep sshdsshd-keygen.service loaded inactive dead? ? ? ? OpenSSH Server Key Generationsshd.service? ? ? ? loaded active? running? ? OpenSSH server daemonsshd.socket? ? ? ? loaded inactive dead? ? ? ? OpenSSH Server Socket
可以看到系統(tǒng)同時(shí)開啟了sshd.service和sshd.socket, 如果只閉關(guān)了sshd.service那么sshd.socket還在監(jiān)聽網(wǎng)絡(luò),在網(wǎng)絡(luò)上有要求連接 sshd 時(shí)就會(huì)啟動(dòng)sshd.service。因此如果想完全關(guān)閉sshd服務(wù)的話,需要同時(shí)停用sshd.service和sshd.socket。
systemctl stop sshd.service
systemctl stop sshd.socket
systemctl disable sshd.service sshd.socket
由于centos 7.x默認(rèn)沒有安裝net-tools,因此無法使用netstat 來查看主機(jī)開發(fā)的商品。需要通過yum安裝來獲得該工具包:
yum -y install net-tools
查看是否關(guān)閉22端口
netstat -lnp |grep sshd
Centos 7.x 中取消了iptables, 用firewall取而代之。要關(guān)閉防火墻并禁止開機(jī)啟動(dòng)服務(wù)使用下面的命令:
systemctl stop firewalld.service
systemctl disable firewalld.service