Linux運維:系統服務管理

環境:CentOS Linux release 7.5.1804 (Core)

chkconfig

chkconfig命令主要用來更新(啓動或中止)和查詢系統服務的運行級信息。
參數用法:
--add增長所指定的系統服務,讓chkconfig指令得以管理它,並同時在系統啓動的敘述文件內增長相關數據。
--del  刪除所指定的系統服務,再也不由chkconfig指令管理,並同時在系統啓動的敘述文內刪除相關數據。
--level<等級代號>  指定讀系統服務要在哪個執行等級中開啓或關畢。php

  • 等級0表示:表示關機
  • 等級1表示:單用戶模式
  • 等級2表示:無網絡鏈接的多用戶命令行模式
  • 等級3表示:有網絡鏈接的多用戶命令行模式
  • 等級4表示:不可用
  • 等級5表示:帶圖形界面的多用戶模式
  • 等級6表示:從新啓動

示例:chkconfig --list
顯示全部運行級系統服務的運行狀態信息(on或off)。若是指定了name,那麼只顯示指定的服務在不一樣運行級的狀態,如(chkconfig --list nginx)。mysql

[root@moli_linux1 ~]$ chkconfig --list

注:該輸出結果只顯示 SysV 服務,並不包含
原生 systemd 服務。SysV 配置數據
可能被原生 systemd 配置覆蓋。 

      要列出 systemd 服務,請執行 'systemctl list-unit-files'。
      查看在具體 target 啓用的服務請執行
      'systemctl list-dependencies [target]'。

mysqld             0:關    1:關    2:開    3:開    4:開    5:開    6:關
netconsole         0:關    1:關    2:關    3:關    4:關    5:關    6:關
network            0:關    1:關    2:開    3:開    4:開    5:開    6:關
nginx              0:關    1:關    2:開    3:開    4:開    5:開    6:關
php-fpm            0:關    1:關    2:開    3:開    4:開    5:開    6:關

示例2:將network服務3級別中止掉linux

$ chkconfig --level 3 network off

示例3:將network服務345級別中止掉nginx

$ chkconfig --level 345 network off

示例4:將network服務從啓動列表刪除sql

$ chkconfig --del network

示例5:將network服務加入到開機啓動列表shell

$ chkconfig --add network

將一個服務或者腳本加入開機啓動列表,須要將這個服務的啓動文件(shell腳本)放入/etc/init.d目錄下,並且啓動文件中須要有# chkconfig:2342 74 83和# description:xxx這樣格式的存在。如:
圖片描述網絡

systemd

CentOS7中使用systemd替換了SysV。Systemd目的是要取代Unix時代以來一直在使用的init系統,兼容SysV和LSB的啓動腳本,並且夠在進程啓動過程當中更有效地引導加載服務。socket

若是是經過RPM或者YUM安裝,則應用程序通常在/usr/lib/systemd/system目錄下建立對應的配置文件,咱們能夠經過系統提供的systemctl命令來管理這些服務。
systemd的特性有:php-fpm

  • 支持並行化任務
  • 同時採用socket式與D-Bus總線式激活服務;
  • 按需啓動守護進程(daemon);
  • 利用 Linux 的 cgroups 監視進程;
  • 支持快照和系統恢復;
  • 維護掛載點和自動掛載點;
  • 各服務間基於依賴關係進行精密控制。

systemctl命令

檢視和控制systemd的主要命令是systemctl。該命令可用於查看系統狀態和管理系統及服務。spa

1. 查看系統中全部服務

$ systemctl list-units --all --type=service

2. 讓服務開機啓動(以crond服務爲例)

$ systemctl enable crond.service

3. 不讓服務開機啓動

$ systemctl disable crond

4. 查看狀態

$ systemctl status crond

如圖,crond服務正在啓動狀態
圖片描述
5. 中止服務

$ systemctl stop crond

6. 啓動服務

$ systemctl start crond

7. 重啓服務

$ systemctl restart crond

8. 檢查服務是否開機啓動

$ systemctl is-enabled crond

enabled表示開機啓動,disabled表示開機不啓動
圖片描述

注意:設置一個服務開機啓動或者開機不啓動的時候,會有一個提示,例如,設置crond服務開機啓動或者不啓動,都會有一行提示以下:

# 設置開機自啓
$ systemctl enable crond
Created symlink from /etc/systemd/system/multi-user.target.wants/crond.service to /usr/lib/systemd/system/crond.service.

# 設置開機不自啓
$ systemctl disable crond
Removed symlink /etc/systemd/system/multi-user.target.wants/crond.service.

當enable一個服務時,就會建立一條軟鏈接,而disable的時候就會挪走這個軟鏈接。

相關文章
相關標籤/搜索