国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Linux | systemd】systemd(systemctl命令)運行服務的配置文件詳解

這篇具有很好參考價值的文章主要介紹了【Linux | systemd】systemd(systemctl命令)運行服務的配置文件詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【systemctl】讓程序以守護進程的方式在后臺運行

首先需要創(chuàng)建一個systemd?unit 配置文件,比如:verdaccio.service,一般放在 /lib/systemd/system/ 下

添加配置如下:

[Unit]
Description=Verdaccio lightweight npm proxy registry

[Service]
Type=simple
Restart=on-failure
User=verdaccio
ExecStart=/usr/bin/verdaccio --config /etc/verdaccio/config.yaml

[Install]
WantedBy=multi-user.target

開機自啟動:systemctl enable verdaccio.service

立即啟動:systemctl start verdaccio.service

重新啟動:systemctl restart verdaccio.service

運行狀態(tài):systemctl status verdaccio.service

前言:

????????你有想過服務器上那么多服務在運行,它們都會怎樣工作?服務是獨立的個體,每個只管自己的死活,如果某個服務自己偷偷死了,會造成很嚴重的后果,且一種服務一種管理方式,這堆起來會累死老師傅的。

????????所以,Linux的管理服務能力是個香饃饃,就一點都不奇怪了。文章來源地址: https://www.yii666.com/blog/347720.html

????????linux 服務器主要的能力之一就是配置并管理系統(tǒng)上運行的各種服務程序。早初這種管理服務程序的能力就是由啟動程序init系統(tǒng)負責的,隨著Linux系統(tǒng)的迭代,早先的init系統(tǒng)已經(jīng)由最初的sysvinit進化到了今天的systemd。

????????所以,systemd作為init系統(tǒng)的啟動程序,負責管理運行在系統(tǒng)上的眾多服務,而systemd管理的手段并不難,只需要學會如何編寫運行服務的配置文件,就可以輕松管理服務了。

一、.server服務配置文件信息詳解

這是一個prometheus的服務進程:

(比如:/usr/lib/systemd/system目錄下的nginx.service文件)

[Unit] 
Description=nginx - web server 
After=network.target remote-fs.target nss-lookup.target 

[Service] 
PIDFile=/opt/nginx/logs/nginx.pid 
ExecStartPre=/opt/nginx/sbin/nginx -t -c /opt/nginx/conf/nginx.conf 
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf 
ExecReload=/opt/nginx/sbin/nginx -s reload 
ExecStop=/opt/nginx/sbin/nginx -s stop 
ExecQuit=/opt/nginx/sbin/nginx -s quit 
Type=forking
PrivateTmp=true 

[Install] 
WantedBy=multi-user.target

[Unit]?? ? 控制單元:主要給出服務描述、啟動順序和依賴關系

Description:? ? ? ?對該服務的描述;

Documentation:?????????服務的文檔

After:????????說明本unit是在哪個服務后啟動。僅是說明服務啟動的順序而已,并沒有強制要求。

Before :? ? ??與After的意義相反

Requires:????? ?本unit需要在哪個服務啟動后才能夠啟動!這里設置服務間的依賴性。如果在此項設置的前導服務沒有啟動成功,那么本 unit 就不會被啟動!

Wants:? ? ??與Requires 剛好相反,規(guī)范的是這個unit之后還會啟動什么服務,如果這Wants 后面接的服務如果沒有啟動成功,不會影響到這個unit本身!

Conflicts:?????????這個項目后面接的服務如果有啟動,那么本unit就不能啟動!(互斥性) 如果本unit啟動了,則指定的服務就不能啟動。

[Service]? ? ?服務:主要給出服務的啟動行為,如何啟動、重啟、停止

EnvironmentFile:????????服務的參數(shù)文件,形成$OPTIONS;

ExecStart:? ? ? ?就是實際執(zhí)行此服務的程序。接受 “命令 參數(shù) 參數(shù)…” 的格式,不能接受 <, >, >>, |, & 等特殊字符,很多的 bash語法也不支持。所以,要使用這些特殊的字符時,最好直接寫入到腳本里面去!

ExecStop:????????用來實現(xiàn)systemctl stop命令,關閉服務。

ExecReload:? ? ? 用來實現(xiàn)systemctl reload命令,重新加載服務的配置信息。

ExecStartPre:? ? ? 啟動服務之前執(zhí)行的命令;

ExecStartPost:? ? ? 啟動服務之后執(zhí)行的命令;

ExecStopPre:? ? ? 停止服務之前執(zhí)行的命令;

ExecStopPost:? ? ? ?停止服務之后執(zhí)行的命令;

Type:????????服務啟動類型。默認simple表示ExecStart為主進程,notify類似于simple,啟動結束后會發(fā)出通知信號。

Type擴展:

?Type:定義啟動類型。它可以設置的值如下:
- simple:默認值,這個服務主要由ExecStart設置的程序來啟動,啟動后常駐于內存中
- forking:由ExecStart指定的啟動的程序通過spawns產(chǎn)生子進程提供服務,然后父進程退出
- oneshot:與simple類似,不過這個程序在工作完畢后就結束了,不會常駐在內存中
- dbus:與simple類似,但這個服務必須要在取得一個D-Bus的名稱后,才會繼續(xù)運行!因此設置這個項目時,通常也要設置 BusName= 才行
- idle:與simple類似,意思是,要執(zhí)行這個服務必須要所有的工作都順利執(zhí)行完畢后才會執(zhí)行。這類的服務通常是開機到最后才執(zhí)行即可的服務
- notify:與simple類似,但這個服務必須要收到一個sd_notify() 函數(shù)發(fā)送的消息后,才會繼續(xù)運行

KillMode:? ? ? ?服務停止類型,默認control-group停止時殺死所有子進程,process只殺主進程,none只停止服務,不殺進程;

?KillMode擴展:文章來源地址https://www.yii666.com/blog/347720.html

?KillMode:定義 Systemd 如何停止 sshd 服務。它可以設置的值如下:
?- ?control-group(默認值):當前控制組里面的所有子進程,都會被殺掉
?- ?process:只殺主進程
?- ?mixed:主進程將收到 SIGTERM 信號,子進程收到 SIGKILL 信號
?- ?none:沒有進程會被殺掉,只是執(zhí)行服務的 stop 命令

Restart:????????服務重啟類型,默認no不重啟,on-success正常退出時重啟,on-failure非正常退出時重啟?

Restart擴展:

?Restart:定義了 sshd 退出后,Systemd 的重啟方式。它可以設置的值如下:
?- no(默認值):退出后不會重啟
?- on-success:只有正常退出時(退出狀態(tài)碼為0),才會重啟
?- on-failure:非正常退出時(退出狀態(tài)碼非0),包括被信號終止和超時,才會重啟
?- on-abnormal:只有被信號終止和超時,才會重啟
?- on-abort:只有在收到?jīng)]有捕捉到的信號終止時,才會重啟
?- on-watchdog:超時退出,才會重啟
?- always:不管是什么退出原因,總是重啟

注意:對于守護進程,推薦設為on-failure。對于那些允許發(fā)生錯誤退出的服務,可以設為on-abnormal。

RestartSec:? ? ? ? 間隔多久重啟服務。?例如RestartSec=42s

TimeoutSec:? ? ? ?若這個服務在啟動或者是關閉時,因為某些緣故導致無法順利 “正常啟動或正常結束” 的情況下,則我們要等多久才進入 “強制結束” 的狀態(tài)!

RemainAfterExit:? ? ? ?當設置為 RemainAfterExit=1 時,則當這個服務所屬的所有程序都終止之后,此服務會再嘗試啟動。這對于 Type=oneshot 的服務很有幫助!

Environment:????????配置環(huán)境變量

[Service]
Environment="GODEBUG='madvdontneed=1'"
Environment="BEAT_LOG_OPTS=-e"
Environment="BEAT_CONFIG_OPTS=-c /etc/v_filebeat.yml"
Environment="BEAT_PATH_OPTS=-path.home /usr/share/filebeat -path.config /etc/filebeat -path.data /var/lib/data -path.logs /var/log/logs"

?EnvironmentFile:? ? ? ?通過文件的方式設置環(huán)境變量

[Service]
EnvironmentFile=/testenv

可以在testenv文件上以shell命令書寫變量聲明:?

GODEBUG='madvdontneed=1'
BEAT_LOG_OPTS=-e
BEAT_CONFIG_OPTS=-c /etc/v_filebeat.yml
BEAT_PATH_OPTS=-path.home /usr/share/filebeat -path.config /etc/filebeat -path.data /var/lib/data -path.logs /var/log/logs

接下來可以在 ExecStart 配置中使用在文件中設置的環(huán)境變量。?

user:????????可以設置服務的用戶名?

[Install]? ? ? 安裝部分:主要說明如何安裝這個配置文件,把該 unit 安裝在哪個 target上,做到開機自啟

WantedBy:????????這個設置后面接的大部分是 *.target unit。意思是,這個unit本身該附掛在哪個 target unit下面

?Target的含義是服務組,表示一組服務。WantedBy=multi-user.target指的是服務所在的Target是multi-user.target,對應的路徑在/etc/systemd/system/multi-user.target.wants下。使用systemctl enable,進行創(chuàng)建符號連接會識別到[Install]字段的內容進行安裝

?Systemd 有默認的啟動 Target。就是multi-user.target,在這個組里的所有服務,都將開機啟動。

Also:?????????當目前這個unit被enable時,Also 后面接的unit也要enable的意思

Alias:?? ? ? 當systemctl enable相關的服務時,則此服務會進行鏈接文件的創(chuàng)建!默認開啟!

————————————————————————————————————————

注意:配置文件,第二行ExecStart設為空值,等于取消了第一行的設置
所有的啟動設置之前,都可以加上一個連詞號(-),表示"抑制錯誤",即發(fā)生錯誤的時候,不影響其他命令的執(zhí)行。比如,EnvironmentFile=-/etc/sysconfig/sshd(注意等號后面的那個連詞號),就表示即使/etc/sysconfig/sshd文件不存在,也不會拋出錯誤。

========================================================================

二、系統(tǒng)的.target的文件信息詳解

查看系統(tǒng)的target配置命令:
systemctl cat multi-user.target

比如:/etc/systemd/system目錄下的default.target文件)

[Unit]
Description=Multi-User System
Documentation=man:systemd.special(7)
Requires=basic.target
Conflicts=rescue.service rescue.target
After=basic.target rescue.service rescue.target
AllowIsolate=yes

注意,Target 配置文件里面沒有啟動命令。

上面輸出結果中,主要字段含義如下。

Requires:????????要求basic.target一起運行。

Conflicts:沖突字段。如果rescue.service或rescue.target正在運行,multi-user.target就不能運行,反之亦然。

After:? ? ?表示multi-user.target在basic.target 、 rescue.service、 rescue.target之后啟動,如果它們有啟動的話。

AllowIsolate:????????允許使用systemctl isolate命令切換到multi-user.target。

=======================================================================

三、使用?systemctl status xxxx 的狀態(tài)信息詳解

用systemctl status命令查看一下該服務的狀態(tài)。

比如:systemctl status nginx

打印出的信息有如下部分:

● nginx.service - nginx - web server
? ?Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
? ?Active: active (running) since 日 2022-10-09 21:47:15 CST; 3 days ago
?Main PID: 994 (nginx)
? ?CGroup: /system.slice/nginx.service
? ? ? ? ? ?├─994 nginx: master process /opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
? ? ? ? ? ?├─998 nginx: worker process
? ? ? ? ? ?└─999 nginx: worker process

10月 09 21:47:15 localhost.localdomain systemd[1]: Starting nginx - web server...
10月 09 21:47:15 localhost.localdomain nginx[972]: nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok


上面的輸出結果含義如下。

Loaded:????????配置文件的位置,是否設為開機啟動,disabled代表啟用

Active:????????active (running) 表示正在運行

Main PID:? ? ? ?主進程ID

CGroup:????????應用的所有子進程,三個nginx進程

日志塊:? ? ? ?應用的日志文章來源地址http://www.zghlxwxcb.cn/news/detail-798427.html

到了這里,關于【Linux | systemd】systemd(systemctl命令)運行服務的配置文件詳解的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Linux 管理 Systemd 服務的命令行工具

    systemctl 是用于管理 Systemd 服務的命令行工具。下面是一些常用的 systemctl 命令及其功能: 1. `systemctl enable service`:啟用一個服務,使其在系統(tǒng)啟動時自動啟動。 2. `systemctl start service`:啟動一個服務。 3. `systemctl stop service`:停止一個服務。 4. `systemctl restart service`:重新啟動一

    2024年01月16日
    瀏覽(28)
  • Ubuntu開機自啟服務systemd.service配置教程(Ubuntu服務)(Linux服務)upstart(systemd教程)

    Ubuntu開機自啟服務systemd.service配置教程(Ubuntu服務)(Linux服務)upstart(systemd教程)

    我們在linux系統(tǒng)下啟動一個程序,一般用一條命令,或者執(zhí)行一個腳本就行了,那么,為什么還要將程序配置成服務?這樣做有什么好處? 1. 自動啟動 配置成服務后,程序將在系統(tǒng)啟動時自動啟動,無需手動操作。這樣可以確保程序在系統(tǒng)重啟后能夠自動運行,避免因為人為

    2024年02月05日
    瀏覽(21)
  • SELinux、SELinux運行模式、破解Linux系統(tǒng)密碼、firewalld防火墻介紹、構建基本FTP服務、systemd管理服務、設置運行模式

    SELinux、SELinux運行模式、破解Linux系統(tǒng)密碼、firewalld防火墻介紹、構建基本FTP服務、systemd管理服務、設置運行模式

    作用:負責域名解析的服務器,將域名解析為IP地址 /etc/resolv.conf:指定DNS服務器地址配置文件 ip命令(Linux最基礎的命令) 1.查看IP地址 2.臨時添加IP地址 3.刪除臨時IP地址 ping 命令,測網(wǎng)絡連接 -c 指定ping包的個數(shù) ?常見的日志文件 /var/log/messages 記錄內核消息、各種服務的公

    2024年01月18日
    瀏覽(48)
  • Ubuntu開機自啟服務systemd.service配置教程(Ubuntu服務)(Linux服務)upstart

    Ubuntu開機自啟服務systemd.service配置教程(Ubuntu服務)(Linux服務)upstart

    我們在linux系統(tǒng)下啟動一個程序,一般用一條命令,或者執(zhí)行一個腳本就行了,那么,為什么還要將程序配置成服務?這樣做有什么好處? 1. 自動啟動 配置成服務后,程序將在系統(tǒng)啟動時自動啟動,無需手動操作。這樣可以確保程序在系統(tǒng)重啟后能夠自動運行,避免因為人為

    2024年02月12日
    瀏覽(26)
  • linux 服務器進程、端口查找,nginx 配置日志查找,lsof 命令詳解

    linux 服務器進程、端口查找,nginx 配置日志查找,lsof 命令詳解

    1.1 使用查看端口號對應的進程信息 方式一 : 使用netstat命令 -t:顯示TCP連接 -u:顯示UDP連接 -l:僅顯示監(jiān)聽狀態(tài)的連接 -n:以數(shù)字形式顯示端口號,而不是以服務名稱顯示 通過管道符號|將netstat的輸出結果傳遞給grep命令,用于過濾出包含指定端口號的行。 執(zhí)行命令后,終端

    2024年02月04日
    瀏覽(32)
  • systemctl命令詳解

    systemctl 命令詳解 systemctl 是linux方便管理一系列服務的命令 啟動/重啟/查看狀態(tài) 開啟/關閉開機自啟動 查看服務是否已啟動 只重啟正在運行中的服務 查看服務是否為開機自啟動 顯示所有的服務狀態(tài)—(翻頁:按空格,退出:輸入q) 查看啟動成功的服務列表 查看啟動失敗的

    2024年02月09日
    瀏覽(24)
  • systemctl命令和配置整理

    systemctl命令和配置整理

    systemctl主要負責控制systemd系統(tǒng)和服務管理器。在ubuntu 、centos等一系列發(fā)行版中可用。可以方便的管理需要啟動的服務等??梢詫崿F(xiàn)開機自啟動、出錯重啟和定時重啟等等功能。 下面有一個是錯誤的,正確為 systemctl daemon-reload #系統(tǒng)命令重新加載 下面是詳細的 本文件一共有三

    2024年02月07日
    瀏覽(25)
  • 【Linux】使用systemd設置開機自啟動命令

    【Linux】使用systemd設置開機自啟動命令

    systemd是Linux系統(tǒng)中現(xiàn)代化的初始化系統(tǒng),可以使用它來實現(xiàn)開機自動運行命令。在systemd中,可以通過創(chuàng)建一個service文件,把要執(zhí)行的命令放在其中,然后將其添加到systemd的自啟動項中。 具體操作步驟如下: 首先在終端中使用sudo權限創(chuàng)建一個.service文件,用于存儲service配置

    2024年02月08日
    瀏覽(28)
  • 【Linux】Shell命令運行原理和權限詳解

    【Linux】Shell命令運行原理和權限詳解

    tar指令(重要): 打包/解包,不打開它,直接看內容 語法:tar [-cxtzjvf] 文件與目錄 … 參數(shù): 常用的為: (1)-c :建立一個壓縮文件的參數(shù)指令(create 的意思); (2)-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮 (3)-f :使用檔名,請留意,在 f 之后要立即接

    2024年03月14日
    瀏覽(31)
  • 【Linux -- systemctl管理服務】

    【Linux -- systemctl管理服務】

    systemctl : 列出系統(tǒng)上所有啟動的unit systemctl list-unit-files : 列出所有已安裝的unit systemctl list-units --type=service --all : 列出所有service類別的deamon,并且啟沒啟動都列出來 systemd也提供了幾個簡單的命令給我們切換模式: 在看看誰會用到multi-user.target呢? 本節(jié)主要介紹了關于 systemctl 管理

    2024年02月15日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包