Linux基礎-23服務(service)管理
阿新 • • 發佈:2020-10-04
尚矽谷韓順平(推薦):https://www.bilibili.com/video/BV1dW411M7xL?from=search&seid=8072051292168114337
大佬榜:
https://jingyan.baidu.com/article/49ad8bce97bd965834d8fa8b.html
https://jingyan.baidu.com/article/5bbb5a1b0bed6213eba179ae.html
https://blog.csdn.net/cds86333774/article/details/51165361
服務(service)本質就是程序,但是執行在後臺,通常都會監聽某個埠,等待其他程式的請求,比如(mysql、sshd、防火牆等),因此我們又稱為守護程序。
service管理指令:
service 服務名 [start | stop | restart | status]
操作防火牆:service iptables stop
在CentOS7.0後,不再使用service,而是systemctl
剛使用centos7會發現,用以前的方式檢視、開啟和關閉防火牆都無效了,這是因為centos7的防火牆改用firewalld,而不再使用iptables了。
案例
檢視當前防火牆的狀況,關閉防火牆和重啟防火牆
1.先是看centos7的防火牆的狀態,檢視的命令為 sudo systemctl status firewalld 檢視後,看到active(running)就意味著防火牆打開了。
2.如果想關閉防火牆,命令為:
sudo systemctl stop firewalld
關閉後檢視是否關閉成功,如果看到inactive(dead)就意味著防火牆關閉了。
3.開啟防火牆的命令為:
sudo systemctl start firewalld
上面開啟和關閉防火牆都是臨時的,重啟電腦後又會恢復到預設的狀態(我的預設狀態是開啟)。如圖,我先關閉了防火牆,然後輸入reboot重啟centos7
重啟後檢視防火牆狀態,還是處於開啟的狀態
如果是想重啟後防火牆還是處於關閉的狀態,得使用命令:
sudo systemctl disable firewalld
telnet指令(windows終端)
工作中,我們經常需要使用telnet命令登入某一個伺服器或者檢視本機和伺服器是否正常連線。但是當開啟windows命令的時候提示:“telnet不是內部或者外部命令,也不是可執行的程式”。這是因為本機的telnet客戶端沒有開啟。
如果電腦沒有開啟telnet客戶端的功能,在使用windows命令輸入:telnet命令的時候,系統返回:“telnet不是內部或者外部命令,也不是可執行的程式”,這是因為沒有開啟telnet客戶端功能。
1.首先,開啟windows開始按鈕,找到控制面板選項並且開啟
2.進入控制面板之後,在檢視方式選擇小圖示。在小圖示檢視下,找到程式和功能選項,點選進入程式和功能選項。
3.進入程式和功能頁面之後,點選左側的開啟或者關閉windows功能。
4.如果是第一次開啟這個功能,載入比較慢。載入完成後,找到Telnet客戶端選項,勾選這個選項,然後點選確定儲存。
5.完成後,再在命令框中輸入telnet命令就不會提示不是內部命令了。說明telnet客戶端功能已經開啟。
檢視服務名:
方式1:使用setup命令
方式2:檢視目錄 /etc/init.d/ (列出系統有哪些服務)
檢視或者修改預設級別:
vim /etc/inittab
開機流程說明:
開機 -> BIOS -> /boot -> init程序 -> 執行級別 -> 執行級別對應服務
systemctl指令:
CentOS 7 使用systemd替換了SysV。Systemd目的是要取代Unix時代以來一直在使用的init系統,相容SysV和LSB的啟動指令碼,而且夠在程序啟動過程中更有效地引導載入服務。
systemd的特性有:
支援並行化任務;
同時採用socket式與D-Bus匯流排式啟用服務;
按需啟動守護程序(daemon);
利用 Linux 的 cgroups 監視程序;
支援快照和系統恢復;
維護掛載點和自動掛載點;
各服務間基於依賴關係進行精密控制。
systemctl的作用:主要負責控制systemd系統和服務管理器。
可以把systemctl理解為systemd的一個工具。也可以認為systemctl命令將service和chkconfig命令結合在了一起。
列出所有可用單元
systemctl list-unit-files
列出所有執行中單元
systemctl list-units
檢查某個單元是否啟用
systemctl is-enabled mysqld.service
啟動、重啟、停止、過載服務
systemctl start httpd.service // 啟動服務
systemctl restart httpd.service // 重啟服務
systemctl stop httpd.service // 停止服務
systemctl reload httpd.service // 過載服務
systemctl status httpd.service // 檢視服務狀態
啟用/禁止自動啟動
systemctl enable httpd.service // 啟用自啟動
systemctl disable httpd.service // 禁止自啟動
殺死服務
systemctl kill httpd