溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

systemd中的命令怎么使用

發(fā)布時(shí)間:2021-12-24 16:29:40 來(lái)源:億速云 閱讀:104 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“systemd中的命令怎么使用”,在日常操作中,相信很多人在systemd中的命令怎么使用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”systemd中的命令怎么使用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

一:描述

CentOS 7 使用systemd替換了SysV。Systemd目的是要取代Unix時(shí)代以來(lái)一直在使用的init系統(tǒng),兼容SysV和LSB的啟動(dòng)腳本,而且夠在進(jìn)程啟動(dòng)過(guò)程中更有效地引導(dǎo)加載服務(wù)。
 systemd的特性有:  
1.支持并行化任務(wù)
2.同時(shí)采用socket式與D-Bus總線式激活服務(wù)。 按需啟動(dòng)守護(hù)進(jìn)程(daemon);
3.利用 Linux 的 cgroups 監(jiān)視進(jìn)程;
4.支持快照和系統(tǒng)恢復(fù);
5.維護(hù)掛載點(diǎn)和自動(dòng)掛載點(diǎn);
6.各服務(wù)間基于依賴關(guān)系進(jìn)行精密控制。

二:命令

使用 systemctl 控制單元時(shí),通常需要使用單元文件的全名,包括擴(kuò)展名(例如 sshd.service)。但是有些單元可以在systemctl中使用簡(jiǎn)寫(xiě)方式。  
1.如果無(wú)擴(kuò)展名,systemctl 默認(rèn)把擴(kuò)展名當(dāng)作 .service。例如 netcf g 和 netcfg.service 是等價(jià)的。  
2.掛載點(diǎn)會(huì)自動(dòng)轉(zhuǎn)化為相應(yīng)的 .mount 單元。例如 /home 等價(jià)于 home. mount。  
3.設(shè)備會(huì)自動(dòng)轉(zhuǎn)化為相應(yīng)的 .device 單元,所以 /dev/sda2 等價(jià)于 de v-sda2.device。



1.systemctl
該命令可用于查看系統(tǒng)狀態(tài)和管理系統(tǒng)及服務(wù)。該命令等同于 systemctl list-units
2.systemctl --failed
輸出運(yùn)行失敗的單元
3.systemctl start <單元>
激活單元
4.systemctl stop <單元>
停止單元
5.systemctl restart <單元>
重啟單元
6.systemctl reload <單元>
重新讀取配置
7.systemctl status <單元>
查看運(yùn)行狀態(tài)
8.systemctl enable <單元>
開(kāi)啟自動(dòng)激活單元
9.systemctl is-enabled <單元>
檢查是否自動(dòng)啟動(dòng)
10.systemctl disable <單元>
取消開(kāi)機(jī)自動(dòng)激活單元

三:?jiǎn)卧募帉?xiě)

systemd單元文件的語(yǔ)法來(lái)源于 XDG桌面入口配置文件.desktop文件,最初的源頭則是Microsoft Windows的.ini文件。單元文件可以從兩個(gè)地方加載,
優(yōu)先級(jí)從低到高分別是:  
1. /usr/lib/systemd/system/: 軟件包安裝的單元
2. /etc/systemd/system/: 系統(tǒng)管理員安裝的單元

編寫(xiě)自定義的 service 文件時(shí),可以選擇幾種不同的服務(wù)啟動(dòng)方式。啟動(dòng)方式可通過(guò)配置文件 [Service] 段中的 Type= 參數(shù)進(jìn)行設(shè)置。  ?
1.Type=simple(默認(rèn)值):systemd認(rèn)為該服務(wù)將立即啟動(dòng)。服務(wù)進(jìn)程 不會(huì)fork。如果該服務(wù)要啟動(dòng)其他服務(wù),不要使用此類型啟動(dòng),除非該服務(wù)是socket激活型。  ?
2.Type=forking:systemd認(rèn)為當(dāng)該服務(wù)進(jìn)程fork,且父進(jìn)程退出后服務(wù) 啟動(dòng)成功。對(duì)于常規(guī)的守護(hù)進(jìn)程(daemon),除非你確定此啟動(dòng)方式無(wú)法滿足需求,使用此類型啟動(dòng)即可。使用此啟動(dòng)類型應(yīng)同時(shí)指定 PIDFile=,以便systemd能夠跟蹤服務(wù)的主進(jìn)程。  ? 
3.Type=oneshot:這一選項(xiàng)適用于只執(zhí)行一項(xiàng)任務(wù)、隨后立即退出的服務(wù)。 可能需要同時(shí)設(shè)置 RemainAfterExit=yes 使得 systemd 在服務(wù)進(jìn)程退出之后仍然認(rèn)為服務(wù)處于激活狀態(tài)。
4.Type=notify:與 Type=simple 相同,但約定服務(wù)會(huì)在就緒后向 syst emd 發(fā)送一個(gè)信號(hào)。這一通知的實(shí)現(xiàn)由 libsystemd-daemon.so 提供。  ? 
5.Type=dbus:若以此方式啟動(dòng),當(dāng)指定的 BusName 出現(xiàn)在DBus系統(tǒng)總 線上時(shí),systemd認(rèn)為服務(wù)就緒。  ? 
6.Type=idle: systemd會(huì)等待所有任務(wù)(Jobs)處理完成后,才開(kāi)始執(zhí)行i dle類型的單元。除此之外,其他行為和Type=simple 類似


四:舉例

點(diǎn)擊(此處)折疊或打開(kāi)

  1. [Unit]

  2. Description=Docker Application Container Engine

  3. Documentation=http://docs.docker.com

  4. After=network.target

  5. Wants=docker-storage-setup.service

  6. Requires=docker-cleanup.timer


  7. [Service]

  8. Type=notify

  9. NotifyAccess=all

  10. KillMode=process

  11. EnvironmentFile=-/etc/sysconfig/docker

  12. EnvironmentFile=-/etc/sysconfig/docker-storage

  13. EnvironmentFile=-/etc/sysconfig/docker-network

  14. Environment=GOTRACEBACK=crash

  15. Environment=DOCKER_HTTP_HOST_COMPAT=1

  16. Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin

  17. ExecStart=/usr/bin/dockerd-current \

  18.           --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \

  19.           --default-runtime=docker-runc \

  20.           --exec-opt native.cgroupdriver=systemd \

  21.           --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \

  22.           $OPTIONS \

  23.           $DOCKER_STORAGE_OPTIONS \

  24.           $DOCKER_NETWORK_OPTIONS \

  25.           $ADD_REGISTRY \

  26.           $BLOCK_REGISTRY \

  27.           $INSECURE_REGISTRY

  28. ExecReload=/bin/kill -s HUP $MAINPID

  29. LimitNOFILE=1048576

  30. LimitNPROC=1048576

  31. LimitCORE=infinity

  32. TimeoutStartSec=0

  33. Restart=on-abnormal

  34. MountFlags=slave


  35. [Install]

  36. WantedBy=multi-user.target

到此,關(guān)于“systemd中的命令怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI