奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

操作系統(tǒng)

在Linux系統(tǒng)中創(chuàng)建和修改systemd單元文件教程

時間:2024-09-09 02:40:25 操作系統(tǒng) 我要投稿
  • 相關(guān)推薦

在Linux系統(tǒng)中創(chuàng)建和修改systemd單元文件教程

  在Linux系統(tǒng)中創(chuàng)建和修改systemd單元文件教程

  (1)單元文件概述

  單元文件包含單元的指令和行為信息。在后臺systemctl命令和單元文件一起工作。為了出色而正確的完成工作,系統(tǒng)管理員必須能夠手工編輯單元文件。一般系統(tǒng)管理員手工創(chuàng)建的單元文件建議存放在/etc/systemd/system/目錄下面。

  單元配置文件的格式是:

  unit_name.type_extension

  這里的unit_name代表單元名稱,type_extension代表單元類型。

  單元文件可以作為附加的文件放置到一個目錄下面,比如為了定制sshd.service服務,可以創(chuàng)建sshd.service.d/custom.conf文件,在文件中做一些自定義的配置。

  同樣的,可以創(chuàng)建sshd.service.wants/和sshd.service.requires/目錄。這些目錄包含sshd服務關(guān)聯(lián)服務的軟連接,在系統(tǒng)安裝的時候,這些軟連接或自動創(chuàng)建,也可以手工創(chuàng)建軟連接。

  許多單元配置文件可以使用單元說明符--通配的字符串,可以在單元文件被引導的時候動態(tài)的被變量替換。這使創(chuàng)建一些通用的單元配置模版成為可能。

  (2)理解單元文件結(jié)構(gòu)

  典型的單元文件包含三節(jié):

  [Unit]節(jié),包含不依賴單元類型的一般選項,這些選型提供單元描述,知道單元行為,配置單元和其他單元的依賴性。

  [unittype]節(jié),如果單元有特定的類型指令,在unittype節(jié)這些指令被組織在一起。舉個例子,服務單元文件包含[Service]節(jié),里面有經(jīng)常使用的服務配置。

  [Install]節(jié),包含systemctlenable或者disable的命令安裝信息。

  1)[Unit]節(jié)選項

  Description單元描述信息,這些文字信息在systemclstatus命令是會輸出。

  Documentation單元文檔信息的URLs。

  After定義在那些單元之后啟動,本單元只在制定的單元啟動之后啟動,不像Requires選項,After選項不明確激活特定的單元,Before選項則是有相反的功能。

  Requires配置單元的依賴性,在Requires選項中的單元需要一起被激活,如果有一個單元啟動失敗,其他單元都不會被啟動。

  Wants比Requires選項依賴性要弱很多,如果列表之中的的單元啟動失敗,不會對其他單元造成影響,這是推薦的建立自定義單元依賴性的方式。

  Conflicts定義單元沖突關(guān)系,和Requires相反。

  2)[unittype]類型是[Service]時的選項

  Type配置單元進程在啟動時候的類型,影響執(zhí)行和關(guān)聯(lián)選項的功能,可選的關(guān)鍵字是:

  simple默認值,進程和服務的主進程一起啟動;

  forking進程作為服務主進程的一個子進程啟動,父進程在完全啟動之后退出。

  oneshot同simple相似,但是進程在啟動單元之后隨之退出。

  dbus同simple相似,但是隨著單元啟動后只有主進程得到D-BUS名字。

  notify同simple相似,但是隨著單元啟動之后,一個主要信息被sd_notify()函數(shù)送出。

  idle同simple相似,實際執(zhí)行進程的二進制程序會被延緩直到所有的單元的任務完成,主要是避免服務狀態(tài)和shell混合輸出。

  ExecStart指定啟動單元的命令或者腳本,ExecStartPre和ExecStartPost節(jié)指定在ExecStart之前或者之后用戶自定義執(zhí)行的腳本。Type=oneshot允許指定多個希望順序執(zhí)行的用戶自定義命令。

  ExecStop指定單元停止時執(zhí)行的命令或者腳本。

  ExecReload指定單元重新加載是執(zhí)行的命令或者腳本。

  Restart這個選項如果被允許,服務重啟的時候進程會退出,會通過systemctl命令執(zhí)行清除并重啟的操作。

  RemainAfterExit如果設置這個選擇為真,服務會被認為是在激活狀態(tài),即使所以的進程已經(jīng)退出,默認的值為假,這個選項只有在Type=oneshot時需要被配置。

  3)[Install]節(jié)選項

  Alias為單元提供一個空間分離的附加名字。

  RequiredBy單元被允許運行需要的一系列依賴單元,RequiredBy列表從Require獲得依賴信息。

  WantBy單元被允許運行需要的弱依賴性單元,Wantby從Want列表獲得依賴信息。

  Also指出和單元一起安裝或者被協(xié)助的單元。

  DefaultInstance實例單元的限制,這個選項指定如果單元被允許運行默認的實例。

  4)一個postfix服務的例子:

  單元文件位于/usr/lib/systemd/system/postifix.service,內(nèi)容如下:

  [Unit]

  Description=PostfixMailTransportAgent

  After=syslog.targetnetwork.target

  Conflicts=sendmail.serviceexim.service

  [Service]

  Type=forking

  PIDFile=/var/spool/postfix/pid/master.pid

  EnvironmentFile=-/etc/sysconfig/network

  ExecStartPre=-/usr/libexec/postfix/aliasesdb

  ExecStartPre=-/usr/libexec/postfix/chroot-update

  ExecStart=/usr/sbin/postfixstart

  ExecReload=/usr/sbin/postfixreload

  ExecStop=/usr/sbin/postfixstop

  [Install]

  WantedBy=multi-user.target

  (3)創(chuàng)建自定義的單元文件

  以下幾種場景需要自定義單元文件:

  希望自己創(chuàng)建守護進程;

  為現(xiàn)有的服務創(chuàng)建第二個實例;

  引入SysV init腳本。

  另外一方面,有時候需要修改已有的單元文件。

  下面介紹創(chuàng)建單元文件的步驟:

  1)準備自定義服務的執(zhí)行文件。

  可執(zhí)行文件可以是腳本,也可以是軟件提供者的的程序,如果需要,為自定義服務的主進程準備一個PID文件,一保證PID保持不變。另外還可能需要的配置環(huán)境變量的腳本,確保所以腳本都有可執(zhí)行屬性并且不需要交互。

  2)在/etc/systemd/system/目錄創(chuàng)建單元文件,并且保證只能被root用戶編輯:

  touch/etc/systemd/system/name.servicechmod664/etc/systemd/system/name.service

  文件不需要執(zhí)行權(quán)限。

  3)打開name.service文件,添加服務配置,各種變量如何配置視所添加的服務類型而定,下面是一個依賴網(wǎng)絡服務的配置例子:

  [Unit]

  Description=service_description

  After=network.target

  [Service]

  ExecStart=path_to_executable

  Type=forking

  PIDFile=path_to_pidfile

  [Install]

  WantedBy=default.target

  4)通知systemd有個新服務添加:

  systemctldaemon-reload

  systemctlstartname.service

  (4)創(chuàng)建emacs.service例子:

  1)創(chuàng)建文件,并確保正確權(quán)限:

  ~]#touch/etc/systemd/system/emacs.service

  ~]#chmod664/etc/systemd/system/emacs.service

  2)添加配置信息:

  [Unit]

  Description=Emacs:theextensible,self-documentingtexteditor

  [Service]

  Type=forking

  ExecStart=/usr/bin/emacs--daemon

  ExecStop=/usr/bin/emacsclient--eval"(kill-emacs)"

  Environment=SSH_AUTH_SOCK=%t/keyring/ssh

  Restart=always

  [Install]

  WantedBy=default.target

  3)通知systemd并開啟服務:

  ~]#systemctldaemon-reload

  ~]#systemctlstartemacs.service

  (5)創(chuàng)建第二個sshd服務的例子

  1)拷貝sshd_config文件

  ]#cp/etc/ssh/sshd{,-second}_config

  2)編輯sshd-second_config文件,添加22220的端口,和PID文件:

  Port22220

  PidFile/var/run/sshd-second.pid

  如果還需要修改其他參數(shù),請閱讀幫助。

  3)拷貝單元文件:

  ~]#cp/usr/lib/systemd/system/sshd{,-second}.service

  4)編輯單元文件sshd-second.service

  修改描述字段

  Description=OpenSSHserversecondinstancedaemon

  添加sshd.service服務在After關(guān)鍵字之后:

  After=syslog.targetnetwork.targetauditd.servicesshd.service

  移除sshdkey創(chuàng)建:

  ExecStartPre=/usr/sbin/sshd-keygen

  移除這一行

  在執(zhí)行腳本里,添加第二sshd服務的配置文件:

  ExecStart=/usr/sbin/sshd-D-f/etc/ssh/sshd-second_config$OPTIONS

  修改后的sshd-second.service文件內(nèi)容如下:

  [Unit]

  Description=OpenSSHserversecondinstancedaemon

  After=syslog.target network.targe tauditd.service sshd.service

  [Service]

  EnvironmentFile=/etc/sysconfig/sshd

  ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd-second_config$OPTIONS

  ExecReload=/bin/kill -HUP $MAINPID

  KillMode=process

  Restart=on-failure

  RestartSec=42s

  [Install]

  WantedBy=multi-user.target

  5)如果使用SELinux,添加tcp端口,負責第二sshd服務的端口就會被拒絕綁定:

  ~]#semanage port -a -tssh_port_t -p tcp22220

  6)設置開機啟動并測試:

  ~]#systemctl enable sshd-second.service

  ~]$ssh -p 22220 user@server

  確保防火墻端口也開放。

  (6)修改已經(jīng)存在的單元文件

  systemd單元配置文件默認保存在/usr/lib/systemd/system/目錄,系統(tǒng)管理員不建議直接修改這個目錄下的文件,自定義的文件在/etc/systemd/system/目錄下,如果有擴展的需求,可以使用以下方案:

  創(chuàng)建一個目錄/etc/systemd/system/unit.d/,這個是最推薦的一種方式,可以參考初始的單元文件,通過附件配置文件來擴展默認的配置,對默認單元文件的升級會被自動升級和應用。

  從/usr/lib/systemd/system/拷貝一份原始配置文件到/etc/systemd/system/,然后修改。復制的版本會覆蓋原始配置,這種方式不能增加附件的配置包,用于不需要附加功能的場景。

  如果需要恢復到默認的配置文件,只需要刪除/etc/systemd/system/下的配置文件就可以了,不需要重啟機器,使用如下命令應用改變就可以:

  systemctl daemon-reload

  daemon-reload選項重新加載所以單元文件并重新創(chuàng)建依賴書,在需要立即應用單元文件改變的時候使用。另外,也可以使用下面的命令達到同樣的目的:

  init q

  還有,如果修改的是一個正在運行服務的單元文件,服務需要被重啟下:

  systemct lrestart name.service

  (7)擴展默認單元配置文件配置

  為了擴展默認的單元文件配置,需要先在/etc/systemd/system/下創(chuàng)建一個目錄,用root執(zhí)行類似下面的命令:

  mkdir/etc/systemd/system/name.service.d

  在剛才創(chuàng)建的目錄之下創(chuàng)建配置文件,必須以.conf文件結(jié)尾。

  例如創(chuàng)建一個自定義的依賴文件,內(nèi)容如下:

  [Unit]

  Requires=new_dependency

  After=new_dependency

  另外一個例子,可以配置重啟的時候,在主進程退出后30秒在重啟,配置例子如下:

  [Service]

  Restart=always

  RestartSec=30

  推薦每次只產(chǎn)生一個小文件,每個文件只聚焦完善一個功能,這樣配置文件很容易被移除或者鏈接到其他服務對的配置目錄中。

  為了應用剛才的修改,使用root執(zhí)行以下操作:

  systemctldaemon-reload

  systemctlrestartname.service

  例子:擴展httpd.service服務配置

  為了是httpd服務啟動的時候執(zhí)行用戶自定義的腳本,需要修改httpd的單元配置文件,執(zhí)行以下幾步操作,首先創(chuàng)建一個自定義文件的目錄及自定義文件:

  ~]#mkdir/etc/systemd/system/httpd.service.d

  ~]#touch/etc/systemd/system/httpd.service.d/custom_script.conf

  假設自定義文件位置在/usr/local/bin/custom.sh,將這個信息添加到custom_script.conf自定義腳本中:

  [Service]

  ExecStartPost=/usr/local/bin/custom.sh

  應用更改:

  ~]#systemctldaemon-reload

  ~]#systemctlrestarthttpd.service

【在Linux系統(tǒng)中創(chuàng)建和修改systemd單元文件教程】相關(guān)文章:

linux的文件系統(tǒng)03-07

Linux系統(tǒng)的文件設置方法11-23

在Linux系統(tǒng)中批量添加用戶的方法講解教程02-28

Linux文件系統(tǒng)的幾個要點03-05

LINUX系統(tǒng)教程:passwd命令的用法03-28

怎樣修改linux系統(tǒng)默認啟動級別11-21

Linux系統(tǒng)怎么顯示文件內(nèi)容07-05

解讀 Linux 集群的新型文件系統(tǒng)03-06

Linux文件系統(tǒng)結(jié)構(gòu)分析論文02-25

主站蜘蛛池模板: 云梦县| 原平市| 松溪县| 稷山县| 溧水县| 五常市| 射洪县| 芮城县| 泉州市| 平潭县| 海城市| 揭东县| 徐州市| 遂宁市| 鸡西市| 淳安县| 莆田市| 于都县| 合江县| 陇西县| 渭南市| 大安市| 邢台县| 突泉县| 辛集市| 如皋市| 奉节县| 大同市| 舒兰市| 海盐县| 太谷县| 郁南县| 商洛市| 栖霞市| 饶河县| 桦甸市| 新建县| 柯坪县| 平定县| 涪陵区| 宁化县|