您好,登錄后才能下訂單哦!
這篇文章主要介紹“systemd中的命令怎么使用”,在日常操作中,相信很多人在systemd中的命令怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”systemd中的命令怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一:描述
CentOS 7 使用systemd替換了SysV。Systemd目的是要取代Unix時代以來一直在使用的init系統,兼容SysV和LSB的啟動腳本,而且夠在進程啟動過程中更有效地引導加載服務。
systemd的特性有:
1.支持并行化任務
2.同時采用socket式與D-Bus總線式激活服務。 按需啟動守護進程(daemon);
3.利用 Linux 的 cgroups 監視進程;
4.支持快照和系統恢復;
5.維護掛載點和自動掛載點;
6.各服務間基于依賴關系進行精密控制。
二:命令
使用 systemctl 控制單元時,通常需要使用單元文件的全名,包括擴展名(例如 sshd.service)。但是有些單元可以在systemctl中使用簡寫方式。
1.如果無擴展名,systemctl 默認把擴展名當作 .service。例如 netcf g 和 netcfg.service 是等價的。
2.掛載點會自動轉化為相應的 .mount 單元。例如 /home 等價于 home. mount。
3.設備會自動轉化為相應的 .device 單元,所以 /dev/sda2 等價于 de v-sda2.device。
1.systemctl
該命令可用于查看系統狀態和管理系統及服務。該命令等同于 systemctl list-units
2.systemctl --failed
輸出運行失敗的單元
3.systemctl start <單元>
激活單元
4.systemctl stop <單元>
停止單元
5.systemctl restart <單元>
重啟單元
6.systemctl reload <單元>
重新讀取配置
7.systemctl status <單元>
查看運行狀態
8.systemctl enable <單元>
開啟自動激活單元
9.systemctl is-enabled <單元>
檢查是否自動啟動
10.systemctl disable <單元>
取消開機自動激活單元
三:單元文件編寫
systemd單元文件的語法來源于 XDG桌面入口配置文件.desktop文件,最初的源頭則是Microsoft Windows的.ini文件。單元文件可以從兩個地方加載,
優先級從低到高分別是:
1. /usr/lib/systemd/system/: 軟件包安裝的單元
2. /etc/systemd/system/: 系統管理員安裝的單元
編寫自定義的 service 文件時,可以選擇幾種不同的服務啟動方式。啟動方式可通過配置文件 [Service] 段中的 Type= 參數進行設置。 ?
1.Type=simple(默認值):systemd認為該服務將立即啟動。服務進程 不會fork。如果該服務要啟動其他服務,不要使用此類型啟動,除非該服務是socket激活型。 ?
2.Type=forking:systemd認為當該服務進程fork,且父進程退出后服務 啟動成功。對于常規的守護進程(daemon),除非你確定此啟動方式無法滿足需求,使用此類型啟動即可。使用此啟動類型應同時指定 PIDFile=,以便systemd能夠跟蹤服務的主進程。 ?
3.Type=oneshot:這一選項適用于只執行一項任務、隨后立即退出的服務。 可能需要同時設置 RemainAfterExit=yes 使得 systemd 在服務進程退出之后仍然認為服務處于激活狀態。
4.Type=notify:與 Type=simple 相同,但約定服務會在就緒后向 syst emd 發送一個信號。這一通知的實現由 libsystemd-daemon.so 提供。 ?
5.Type=dbus:若以此方式啟動,當指定的 BusName 出現在DBus系統總 線上時,systemd認為服務就緒。 ?
6.Type=idle: systemd會等待所有任務(Jobs)處理完成后,才開始執行i dle類型的單元。除此之外,其他行為和Type=simple 類似
四:舉例
點擊(此處)折疊或打開
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer
[Service]
Type=notify
NotifyAccess=all
KillMode=process
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current \
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
Restart=on-abnormal
MountFlags=slave
[Install]
WantedBy=multi-user.target
到此,關于“systemd中的命令怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。