Systemdカスタムサービスの追加(POST)

6210 ワード

Systemdの概要:https://fedoraproject.org/wiki/Systemd/zh-cn
 
一、サービスunit常用コマンド、mysqlサービスを例に
#     
systemctl enable mysqld

#       
systemctl disable mysqld

#     
systemctl start mysqld

#     
systemctl stop mysqld

#     
systemctl restart mysqld

#       
systemctl status mysqld
systemctl is-active sshd.service

#       (       )
systemctl kill mysqld

 
二、サービス起動のプロファイル
プロファイルは主に/usr/lib/systemd/systemd/systemディレクトリに配置されます./etc/systemd/systemdディレクトリにも配置されます.
#    sshd       
systemctl cat sshd.service

# /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

各サービスファイルは.サービスの最後は、一般的に3つの部分に分かれています.[Services]部分を含める必要があります.
[Unit]起動順序と依存関係
Description:         
Documentation:   man     

After:   network.target   sshd-keygen.service     ,   sshd.service          
Before:   sshd            
  :After   Before          ,       。

Wants:   sshd.service   sshd-keygen.service     "   "  ,   "sshd-keygen.service"         ,    sshd.service     
Requires:  "   "  ,               ,  sshd.service      
  :Wants     Requires          ,       ,          。

[サービス]起動動作
EnvironmentFile:               ,         
  :/etc/profile    /etc/profile.d/                  pam        ,  systemd         。
systemd               ,                 ,      systemd           /etc/systemd/system.conf    /etc/systemd/user.conf    。
system.conf , 。 Type: 。 :simple,exec,forking,oneshot,dbus,notify,idle simple( ExecStart= BusName= ):ExecStart forking:ExecStart fork() , , ExecStart: , sshd /usr/sbin/sshd -D $OPTIONS, $OPTIONS EnvironmentFile 。 , : ExecReload: ExecStop: ExecStartPre: ExecStartPost: ExecStopPost: RemainAfterExit: yes, , KillMode: Systemd , : control-group( ): , process: mixed: SIGTERM , SIGKILL none: , stop Restart: ,Systemd 。 : no( ): on-success: ( 0), on-failure: ( 0), , on-abnormal: , on-abort: , on-watchdog: , always: , RestartSec: Systemd ,

 
構成内の複数の同じ構成が最後に選択され、次の結果はexecstart 2です.
[Service]
ExecStart=/bin/echo execstart1
ExecStart=/bin/echo execstart2
 
すべての起動設定の前に、「エラーを抑制」を表す連語(-)を付けることができます.つまり、エラーが発生した場合、他のコマンドの実行に影響を与えません.
EnvironmentFile=-/etc/sysconfig/sshdは、/etc/sysconfig/sshdファイルが存在しなくても、エラーが放出されないことを示します
[Install]
WantedBy:         Target(   )

Target、実行レベルについて
#      Target
systemctl get-default
#     multi-user.target,        Target  multi-user.target。          ,      。       systemctl enable             

# multi
-user.target systemctl list-dependencies multi-user.target # target # shutdown.target # Target : multi-user.target, ; graphical.target, , multi-user.target systemctl isolate shutdown.target

 
三、カスタムサービス
/usr/lib/systemd/systemでサービススクリプトを新規作成
vim /usr/lib/systemd/system/zdy.service

[Unit]
Description=  
Environment=       (            )
After=network.target

[Service]
Type=forking
EnvironmentFile=             
ExecStart=    (      )
ExecStop=    (      )
User=         

[Install]
WantedBy=multi-user.target

新規作成完了後の自動起動の設定
#           ,      
systemctl daemon-reload

#      ,      /etc/systemd/system/multi-user.target.wants/          
systemctl enable zdy

 
公式マニュアルhttps://www.freedesktop.org/software/systemd/man/systemd.service.html
中国語の翻訳http://www.jinbuguo.com/systemd/systemd.service.html
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html
https://blog.csdn.net/weixin_37766296/article/details/80192633
転載先:https://www.cnblogs.com/jhxxb/p/10654554.html