首頁 >運維 >linux運維 >linux運維之透過systemctl管理服務

linux運維之透過systemctl管理服務

齐天大圣
齐天大圣原創
2020-11-11 09:51:092104瀏覽

自centOS7後,新增了一個管理服務的指令-systemctl,透過這個指令可以非常方便的管理系統上的服務。

透過systemctl開啟、關閉服務

#以下列出關於服務的開啟、關閉相關選項

  • #start 開啟服務

  • stop 關閉服務

  • #restart 重啟服務

  • status 查看服務狀態

  • reload 重新載入設定檔(不關閉服務)

  • enable 開機自啟動該服務

  • #disable 關閉開機自啟動

下面透過案例來學習

# 查看服务运行状况
# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-11-07 16:20:59 CST; 3 days ago
 Main PID: 3002 (atd)
   CGroup: /system.slice/atd.service
           └─3002 /usr/sbin/atd -f
Nov 07 16:20:59 iz8vb626ci0aehwsivxaydz systemd[1]: Started Job spooling tools.
Nov 07 16:20:59 iz8vb626ci0aehwsivxaydz systemd[1]: Starting Job spooling tools...

透過上面顯示的信息,我們可以獲得很多資訊。從第二行Loaded,出現了enabled表示該服務開機自啟動。從第三行的running得知該服務正在運作。

下面再來示範關閉、啟動服務

# systemctl stop atd
# systemctl start atd

關於服務的運作狀況,除了常見的running、dead等,還有一些,以下列出

  • active(running) 正在執行

  • #active(waiting):等待執行(等其他服務執行後,再執行)

  • active(exited):只執行一次就正常結束的服務

  • inactive(dead):服務未啟動

另外,關於服務開機是否啟動也有幾個選項:

  • enable :開機啟動

  • disable:開機不會啟動

  • static:開機無法自啟動,但能被其他自啟動的服務啟動

  • #mask:無論如何也不會啟動,該服務已被強制註銷

透過systemctl觀察系統上服務

#透過systemctl可以查看目前有哪些服務正在運行,也可以查看系統上所有的服務(包括未啟動的),也可以查看某一類型的服務。

list-units 列出目前所有啟動的服務,若沒有使用任務選項,則預設使用該選項。加上-a則顯示所有,包括未啟動的服務

--type=TYPE 列出某一類型的服務

下面看演示內容

# 列出系统所有正在运行的服务
# systemctl 
  UNIT                                                     LOAD      ACTIVE SUB       DESCRIPTION
  proc-sys-fs-binfmt_misc.automount                        loaded    active running   Arbitrary Executable File Formats File System Automoun
  sys-devices-pci0000:00-0000:00:03.0-virtio0-net-eth0.device loaded    active plugged   Virtio network device
  sys-devices-pci0000:00-0000:00:04.0-virtio1-virtio\x2dports-vport1p1.device loaded    active plugged   /sys/devices/pci0000:00/0000:00:04.
  ……
  
# 列出系统正在运行的service类型的服务
# systemctl --type=service
   UNIT                               LOAD      ACTIVE SUB     DESCRIPTION
  aegis.service                      loaded    active running LSB: aegis update.
  aliyun.service                     loaded    active running aliyun-assist
  atd.service                        loaded    active running Job spooling tools
  auditd.service                     loaded    active running Security Auditing Service
# 列出系统上所有服务,包括未运行的
# systemctl -a
……

透過systemctl管理不同的操作環境(target unit)

在centos7中,有非常多個target unit,但這裡我們只要知道幾個常用的target unit,以下列出常用的target unit:

  • graphical.target 圖形模式

  • multi-user.target 文字模式

  • #rescue.target 一般救援模式

  • emergency.target 緊急救援模式

接下來再看如何查看系統默認的操作環境,以及如何去修改操作環境。

systemctl [选项] [unit.target]
[选项]
  get-default:查看系统默认操作环境
  set-default:设置系统默认操作环境
  
# 查看默认的操作环境
# systemctl get-default
multi-user.target
# 重新设置新的默认操作环境
# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.
# systemctl get-default
graphical.target

以上是linux運維之透過systemctl管理服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn