系统运输
定制systemctl管理服务
#前言
systemd通过管理单元来控制加电服务、加电等级等功能。
/usr/lib/systemd/system目录包含各种unit文件,例如具有服务后缀的服务单元和具有目标后缀的引导级单元。 本节介绍service后缀的文件。 systemd要加电并执行自启动,是由这些*.service的单元控制的,因为服务分为系统服务( system )和用户服务( user )。
系统服务:打开电源也无需登录即可运行的程序。 通常用于接通电源后再启动。
用户服务:登录后才能运行的程序。
配置文件说明:
的所有*.service文件都位于/lib/systemd/system目录下。
看看crontab.service文件,看看写了什么
[root@zhangsf system]# cd ~
[ root @ changsf~] # cat/usr/lib/systemd/system/crond.service
[Unit]
Description=Command Scheduler
after=auditd.servicesystemd-user-sessions.service time-sync.target
服务
environment file=/etc/sys config/crond
execstart=/usr/sbin/crond-n $ crond args
exec reload=/bin/kill-hup $ main PID
KillMode=process
[安装]
WantedBy=multi-user.target
可以看出分为以下几个部分
*[Unit]块:启动顺序和依赖关系
描述:当前服务的简要介绍
文档:使用文档位置
如果需要启动After:auditd.service或systemd-user-sessions.service服务,则必须在此服务之前启动
Before: crontd服务必须在这些服务之前启动
注意: After和Before只与启动顺序有关,与依赖关系无关。
[服务]启动动作
启动命令
“执行”字段:定义启动进程时运行的命令
ExecReload字段:重新启动服务时执行的命令
ExecStop字段:停止服务时执行的命令
ExecStartPre字段:用于在启动服务之前执行的命令
ExecStartPost字段:启动服务后执行的命令
ExecStopPost字段:停止服务后执行的命令
注意:可以在所有启动设置之前加上连接词号(-)。 这表示要抑制发生错误时不影响其他命令执行的错误。
例如,environment file=-/etc/sys config/sshd (注意等号后的连接词号)可以是例如
/etc/sysconfig/sshd文件不存在,也不会抛出错误。
注意: [Service]的启动、重新启动和停止命令都必须使用绝对路径。
启动类型
Type字段定义启动类型。 可以设定的值如下。
在simple:execstart字段中启动的流程是主流程
forking:ExecStart字段以fork ( )开始,父进程结束,子进程成为主进程(后台执行)
one shot :与simple类似,但只执行一次,Systemd在它执行之前不会启动其他服务
dus :与simple相似,但等待D-Bus信号后启动
notify :类似simple,启动结束时会发出通知信号,Systemd会重新启动其他服务
idle :与simple类似,但在其他任务完成之前不会启动服务。 一种使用场景是为了使该服务的输出不与其他服务的输出相混淆
重启行为
Service块包含用于定义重新启动行为的字段。
KillMode字段:定义Systemd停止sshd服务的方式。
control-group (默认)当前控制组中的所有子进程都会被杀死
process :只杀主流程
混合:主进程接收SIGTERM信号,而子进程接收SIGKILL信号
none :没有被杀的过程。 只需运行服务的stop命令。
Restart字段定义sshd退出后Systemd的重新启动方式
上面的示例将Restart设置为on-failure,并在出现意外失败时重新启动sshd。 如果sshd正常停止(例如运行systemctl stop命令),则不会重新启动。
可以为Restart字段设置以下值:
否(默认值) :退出后不重新启动
on-success :仅在正常结束时(结束状态代码为0 )重新启动
on-failure :如果不成功(结束状态代码不为0 ),则重新启动,包括信号结束和超时
on-abnormal :以信号结束,仅在超时时重新启动
on-abort :仅在未捕获的信号结束时重新启动
on-watchdog :在超时结束之前不重新启动
always :不管是什么退出理由,总是重新启动
注意:对于守护进程,建议将其设置为on-failure。 对于允许错误结束的服务,可以设置为on-abnormal。
RestartSec字段:指示Systemd在重新启动服务之前等待的秒数。
上面的例子是等待42秒。
安装[如何安装此配置式
WantedBy字段:指示服务所在的目标。
Target的意思是服务组,表示一组服务。
WantedBy=multi-user.Target意味着sshd所在的target为multi-user.target。
这个设定非常重要。 运行systemctl enable sshd.service命令时,sshd.service中的符号链接将显示在/etc/systemd/system目录下的multi-user.target.warget
Systemd有默认的启动目标。
系统获取-默认
#输出multi-user.target
以上结果表明缺省启动Target为multi-user.target。 此组中的所有服务将通电并启动。 因此,systemctl enable命令可以设置启动和启动。
使用Target时,systemctl list-dependencies和systemctl isolate命令也很有用。
显示multi-user.target中包含的所有服务
systemctllist-dependencies multi-user.target
#切换到其他目标
#shutdown.target处于关闭状态
systemctlisolateshutdown.target
一般来说,常用的目标有两个:
multi-user.target :指示多用户命令行的状态;
graphical.target :表示图形用户的状态,依赖于multi-user.target。
#例
[ root @ hangsfsystem ] # cat/usr/lib/systemd/system/node-exporter.service
[Unit]
description=thisisprometheusnodeexporter
After=docker.service
服务
Type=simple
execstart=/usr/local/bin/node _ exporter
exec reload=/bin/kill-hup $ main PID
KillMode=process
Restart=on-failure
[安装]
WantedBy=multi-user.target
执行命令
系统日期-读取
systemctlenablenode-exporter.service
systemctlstartnode-exporter.service
查看日志
[ root @ hangsfsystem ] # tail-f/var/log/messages
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-sockstat source=node \
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-stat source=node _ ex
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-textfilesource=node \
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-time source=node _ ex
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-Timex source=node _ ee
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-uname source=node _ ee
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-vmstat source=node _ nod
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-xfs source=node _ exp
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=-ZFS source=node _ exp
feb 611:53:40 zhangs fnode _ exporter:time=2020-02-06t 11:53:4008:00 level=info msg=listening on:9100 source
参考:
33559 www.Jian Shu.com/p/79059 b06a 121
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn