中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中如何使用systemctl命令

發布時間:2021-10-26 10:27:16 來源:億速云 閱讀:607 作者:小新 欄目:云計算

這篇文章將為大家詳細講解有關linux中如何使用systemctl命令,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、systemctl介紹
       通常,Linux 的啟動一直采用init進程。

       我們經常看到

      $ sudo /etc/init.d/apache2 start

     或者

      $ service apache2 start

       這種方法有兩個缺點:

       一是啟動時間長。init進程是串行啟動,只有前一個進程啟動完,才會啟動下一個進程。

       二是啟動腳本復雜。init進程只是執行啟動腳本,不管其他事情。腳本需要自己處理各種情況,這往往使得腳本變得很長。

       為此,LINXU設計引入了Systemd

       它的設計目標是,為系統的啟動和管理提供一套完整的解決方案。根據 Linux 慣例,字母d是守護進程(daemon)的縮寫。Systemd 這個名字的含義,就是它要守護整個系統。使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成為系統的第一個進程(PID 等于 1),其他進程都是它的子進程。

       通過上圖的命令,我們可以查看Systemd版本。

       總的來說,Systemd 的優點是功能強大,使用方便,缺點是體系龐大,非常復雜。事實上,現在還有很多人反對使用 Systemd,理由就是它過于復雜,與操作系統的其他部分強耦合,違反”keep simple, keep stupid”的Unix 哲學。

linux中如何使用systemctl命令

        上圖就是Systemd的架構圖,看著有點嚇人!

二、systemctl命令
       Systemd 并不是一個命令,而是一組命令,涉及到系統管理的方方面面。
       下面我來介紹幾個常用的命令

# 啟動redis服務
$ sudo systemctl start redis
 
# 重啟redis服務
$ sudo systemctl restart redis
 
# 查看redis服務狀態
$ sudo systemctl status redis
 
# 重啟系統
$ sudo systemctl reboot
 
# 關閉系統,切斷電源
$ sudo systemctl poweroff

 

三、利用systemctl添加自定義服務
       在日常開發中,我們難免搭建各種各樣的服務,這時,我們可以利用systemctl添加我們需要的服務。

        以我的系統為例,配置服務可以到上圖的目錄中,system存放了系統配置的服務,user目錄存放用戶自定義配置的服務,當然,你也可以把服務放到system中

          上圖是已經搭好的ECF服務,分別有Unit、Service、Install三個關鍵詞

[Unit]
Description : 服務的簡單描述
Documentation :服務文檔 
Before、After:定義啟動順序。Before=xxx.service,代表本服務在xxx.service啟動之前啟動。After=xxx.service,代表本服務在xxx.service之后啟動。
Requires:這個單元啟動了,它需要的單元也會被啟動;它需要的單元被停止了,這個單元也停止了。
Wants:推薦使用。這個單元啟動了,它需要的單元也會被啟動;它需要的單元被停止了,對本單元沒有影響。
[Service]
Type=simple(默認值):systemd認為該服務將立即啟動。服務進程不會fork。如果該服務要啟動其他服務,不要使用此類型啟動,除非該服務是socket激活型。
Type=forking:systemd認為當該服務進程fork,且父進程退出后服務啟動成功。對于常規的守護進程(daemon),除非你確定此啟動方式無法滿足需求,使用此類型啟動即可。使用此啟動類型應同時指定 PIDFile=,以便systemd能夠跟蹤服務的主進程。
Type=oneshot:這一選項適用于只執行一項任務、隨后立即退出的服務。可能需要同時設置 RemainAfterExit=yes 使得 systemd 在服務進程退出之后仍然認為服務處于激活狀態。
Type=notify:與 Type=simple 相同,但約定服務會在就緒后向 systemd 發送一個信號。這一通知的實現由 libsystemd-daemon.so 提供。 
Type=dbus:若以此方式啟動,當指定的 BusName 出現在DBus系統總線上時,systemd認為服務就緒。
Type=idle: systemd會等待所有任務(Jobs)處理完成后,才開始執行idle類型的單元。除此之外,其他行為和Type=simple 類似。
PIDFile:pid文件路徑
ExecStart:指定啟動單元的命令或者腳本,ExecStartPre和ExecStartPost節指定在ExecStart之前或者之后用戶自定義執行的腳本。Type=oneshot允許指定多個希望順序執行的用戶自定義命令。
ExecReload:指定單元停止時執行的命令或者腳本。
ExecStop:指定單元停止時執行的命令或者腳本。
PrivateTmp:True表示給服務分配獨立的臨時空間
Restart:這個選項如果被允許,服務重啟的時候進程會退出,會通過systemctl命令執行清除并重啟的操作。 
RemainAfterExit:如果設置這個選擇為真,服務會被認為是在激活狀態,即使所以的進程已經退出,默認的值為假,這個選項只有在Type=oneshot時需要被配置。 
[Install]
Alias:為單元提供一個空間分離的附加名字。
RequiredBy:單元被允許運行需要的一系列依賴單元,RequiredBy列表從Require獲得依賴信息。
WantBy:單元被允許運行需要的弱依賴性單元,Wantby從Want列表獲得依賴信息。
Also:指出和單元一起安裝或者被協助的單元。
DefaultInstance:實例單元的限制,這個選項指定如果單元被允許運行默認的實例。

關于“linux中如何使用systemctl命令”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

基隆市| 五莲县| 奇台县| 屏东县| 西宁市| 芦溪县| 加查县| 利津县| 石首市| 电白县| 腾冲县| 皮山县| 普兰县| 应用必备| 雅安市| 武山县| 温州市| 卓资县| 清徐县| 建水县| 海安县| 河南省| 宣威市| 离岛区| 河东区| 香河县| 乌鲁木齐县| 甘南县| 元朗区| 福泉市| 扶沟县| 开封县| 巴林右旗| 廊坊市| 壤塘县| 揭阳市| 宁津县| 德州市| 江川县| 阿拉善盟| 资中县|