2021-05-12 14:32:11
CentOS 7服務控制及優化啟動過程
CentOS 7系統服務控制
在 CentOS系統中,各種系統服務的控制指令碼預設放在/usr/lib/systemd目錄下。通過systemctl命令工具可以實現對指定系統服務的控制。
-
systemctl命令
- 常用格式
systemctl [控制型別] [服務名稱]
- 控制型別
start(啟動):執行指定的系統服務程式,實現服務功能。
stop(停止):終止指定的系統服務程式,關閉相應的功能。
restart(重新啟動):先退出,再重新執行指定的系統服務程式。(慎用)
reload(過載):不退出服務程式,只是重新整理設定。
status(檢視狀態):檢視指定的系統服務的執行狀態及相關資訊。
[root@localhost ~]# systemctl start httpd //啟動httpd服務 [root@localhost ~]# systemctl status httpd //檢視httpd服務執行狀態及相關資訊 ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: active (running) since 二 2019-08-27 14:18:52 CST; 32s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1896 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─1896 /usr/sbin/httpd -DFOREGROUND ├─1899 /usr/sbin/httpd -DFOREGROUND ├─1900 /usr/sbin/httpd -DFOREGROUND ├─1901 /usr/sbin/httpd -DFOREGROUND ├─1903 /usr/sbin/httpd -DFOREGROUND └─1905 /usr/sbin/httpd -DFOREGROUND 8月 27 14:18:52 localhost.localdomain systemd[1]: Starting The Apache HTTP Se... 8月 27 14:18:52 localhost.localdomain httpd[1896]: AH00558: httpd: Could not ... 8月 27 14:18:52 localhost.localdomain systemd[1]: Started The Apache HTTP Ser... Hint: Some lines were ellipsized, use -l to show in full. [root@localhost ~]# systemctl stop httpd //關閉httpd服務 [root@localhost ~]# systemctl status httpd ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead) //服務處於關閉狀態 Docs: man:httpd(8) man:apachectl(8) 8月 27 14:18:52 localhost.localdomain systemd[1]: Starting The Apache HTTP Se... 8月 27 14:18:52 localhost.localdomain httpd[1896]: AH00558: httpd: Could not ... 8月 27 14:18:52 localhost.localdomain systemd[1]: Started The Apache HTTP Ser... 8月 27 14:20:06 localhost.localdomain systemd[1]: Stopping The Apache HTTP Se... 8月 27 14:20:07 localhost.localdomain systemd[1]: Stopped The Apache HTTP Ser... Hint: Some lines were ellipsized, use -l to show in full.
- 注意:對於在實際生產環境中執行的伺服器,不要輕易執行 stop 或restart操作,以免造成用戶端存取中斷,帶來不必要的損失。
切換執行級別
執行級就是作業系統當前正在執行的功能級別。 它讓一些程式在一個級別啟動,而另外一個級別的時候不啟動。
Linux系統的有效登入模式有0~9共十種,不過沿用UNIX系統的至多6種的限制,一般只有1到6有效。從1到6 ,具有不同的功能。
執行級別 | Systemd的target | 說明 |
---|---|---|
0 | target | 關機狀態,使用該級別時將會關閉主機 |
1 | rescue.target | 單使用者模式,不需要密碼驗證即可登入系統,多用於系統維護 |
2 | multi-user.target | 使用者定 義/域特定執行級別。預設等同於3 |
3 | multi-user.target | 字元介面的完整多使用者模式,大多數伺服器主機執行在此級別 |
4 | multi-user.target | 使用者定義/域特定執行級別。預設等同於3 |
5 | graphical.target | 圖形介面的多使用者模式,提供了圖形桌面操作環境 |
6 | reboot.target | 重新啟動,使用該級別時將會重新啟動主機 |
1、檢視當前系統執行級別
- runlevel命令
[root@localhost ~]# runlevel N 5
2、切換系統執行級別
當使用者需要將系統切換到其他執行級別時,可以通過傳統的 init程式進行,只要使用 與執行級別相對應的數位(0~6)作為命令引數即可,或者使用systemctl 命令進行目標切換。
- init程式切換
[root@localhost ~]# init 3
- systemctl工具切換
- systemctl isolate graphical.target 切換到圖形介面(inin 5)
- systemctl isolate multi-user.target 切換到字元介面(inin 3)
-
設定開機啟動自動進入字元介面。
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
(設定開機啟動為字元化介面)
systemctl get-default:檢視當前開機啟動級別
[root@localhost ~]# systemctl get-default //檢視當前啟動級別狀態 graphical.target //圖形化介面 [root@localhost ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target //設定開啟啟動為字元介面 [root@localhost ~]# systemctl get-default //檢視當前啟動級別狀態 multi-user.target //字元化介面
優化啟動過程
Linux作業系統中包含了大量的服務程式,這些服務程式在切換執行級別時根據預設的狀態進行啟動或終止。其中有不少系統服務可能並不是使用者需要的,但是預設也執行了。
那麼,在Linux作業系統中預設包括哪些系統服務?各自的作用是什麼?如何控制開機後自動執行的系統服務,以減少資源佔用、提高系統執行效率呢?
1.常見的系統服務
在 CentOS 系統中,預設安裝的系統服務多達100餘種,這些系統服務為使用者提供了豐富的應用服務。只有了解各個系統服務的用途,才能有選擇地進行優化操作,實現按需啟用Linux 服務。
了 CentOS 中常見的一些系統服務:
服務名稱 | 用途簡介 | 備註 |
---|---|---|
atd | 延期、定時執行任務 | 建議關閉 |
bluetooth | 發現、認證藍牙相關裝置 | 建議關閉 |
crond | 按預定週期執行計劃任務 | 建議開啟 |
irqbalance | 多核心 CPU 處理器的排程支援 | 建議開啟 |
kdump | 記錄核心崩潰時的記憶體資訊 | 建議關閉 |
lvm2-monitor | LVM 管理及監控 | 建議開啟 |
netfs | 存取共用資料夾等網路檔案系統 | 建議開啟 |
network | 設定及使用網絡卡、網路地址 | 建議開啟 |
restorecond SELinux | 安全機制的檔案監控和恢復功能 | 建議關閉 |
rhnsd | 存取 Red Hat Network,獲取通知、提交訂閱等 | 建議關閉 |
rpcgssd | 管理 NFS存取中的客戶程式語境 | 建議關閉 |
saslauthd | 基於文字的身份認證 | 建議關閉 |
smartd | 監控本地硬碟的狀態並行送故障報告 | 建議開啟 |
smb | 檔案共用服務 | 建議關閉 |
sshd | 提供遠端登入和管理 Linux主機的功能 | 建議開啟 |
rsyslog | 記錄核心、系統的紀錄檔訊息 | 建議開啟 |
vsftpd | 通過FTP提供檔案上傳、下載功能 | 建議關閉 |
- 注意:必須強調的是,這些服務到底是選擇開啟還是關閉,應根據主機的實際功能需求來定,不要生搬硬套。
2.優化開機自動載入的服務
Linux 作業系統在每次開機後會進入預設的systemd執行目標(如字元模式或圖形模式), 並執行該目標中預設設為啟動的各種系統服務。若要禁止某些系統服務自動執行,可以使用ntsysv或者systemctl工具進行優化。
-
ntsysv工具
ntsysv工具可以在字元模式中執行,為使用者提供一個仿圖形的互動式操作介面,專門用於集中設定各種系統服務的啟動狀態。當需要同時設定多個服務的啟動狀態時,使用ntsysv工具會非常方便。
[root@localhost ~]# ntsysv // 輸入命令進入仿圖形互動式操作介面
操作時按↑、↓方向鍵來選擇不同的系統服務,按Space(空格)鍵設定服務的預設啟動狀態( [*]表示啟動,[ ]表示關閉)。如果要檢視所選定服務的說明資訊,按 F1鍵可以獲取幫助。
-
systemctl工具
systemctl工具與ntsysv的功能類似,但是systemctl不提供互動式的操作介面,它用於查詢或設定系統服務的預設啟動狀態。當需要設定某一個服務在當前執行目標中的預設啟動狀態時,使用systemctl工具會更有效率。
-
命令格式
- systemctl 控制選項 服務名稱
- 常用選項
- enable:開機自動啟動。
- disable:開機自動關閉。
- is-enable:檢視開機啟動狀態。
-
[root@localhost ~]# systemctl enable httpd.service //設定開機自動啟動httpd服務 Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@localhost ~]# systemctl is-enabled httpd.service //檢視httpd開機啟動狀態 enabled [root@localhost ~]# systemctl disable httpd.service //設定開機不啟動httpd服務 Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service. [root@localhost ~]# systemctl is-enabled httpd.service ////檢視httpd開機啟動狀態 disabled
補充內容
在當前系統下執行systemctl list-units --type=service命令可以檢視當前系統中所有已啟用的系統服務。
[root@localhost ~]# systemctl list-units --type=service //檢視當前系統中所有已啟用的系統服務 UNIT LOAD ACTIVE SUB DESCRIPTION abrt-ccpp.service loaded active exited Install ABRT coredump hook abrt-oops.service loaded active running ABRT kernel log watcher abrt-xorg.service loaded active running ABRT Xorg log watcher abrtd.service loaded active running ABRT Automated Bug Reporting Tool accounts-daemon.service loaded active running Accounts Service alsa-state.service loaded active running Manage Sound Card State (restore and store) atd.service loaded active running Job spooling tools auditd.service loaded active running Security Auditing Service avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack blk-availability.service loaded active exited Availability of block devices ...//省略部分內容...
謝謝觀看,希望能對大家有所幫助!
相關文章