1. 程式人生 > 實用技巧 >Linux基礎-23服務(service)管理

Linux基礎-23服務(service)管理

尚矽谷韓順平(推薦):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