linux文件之.service文件

叶sir学编程 2024-06-08 22:20:46

linux系统中,当系统重启时,程序的启动和服务的操作基本上都是service来实现完成的,service也是linux系统下一个非常重要的管理功能,通常每个service都有一个对应的.service文件,该.service文件包含了服务的启动顺序,行为和命令等信息。.service文件默认保存在/etc/systemd/system目录下,如图1,是/etc/systemd/system/sshd.service的文件信息:

图1

从图1可以知道.service文件包含三部分信息:[Unit]、[Service]、[Install],每部分的作用都不一样。

[Unit]单元参数

[Unit]部分主要决定了该service文件的启动顺序和依赖关系;

Description参数:表示当前文件的描述信息;

After参数:表示启动顺序,如图1,表示sshd.service是在network.target auditd.service启动之后才启动;

ConditionPathExists参数:表示其执行条件;

[Service]单元参数

[Service]部分决定了该service文件启动后的行为,即执行的命令或操作;

EnvironmentFile参数:表示指定当前服务所使用的环境参数文件,通常为绝对路径;

ExecStartPre参数:表示启动服务之前执行的命令;

ExecStart参数:表示启动服务时,所要执行的命令;

ExecReload参数:表示重启服务时,所要执行的命令;

KillMode参数:表示如何停止服务,设置的值有如下:

process:只杀死主进程;

control-group:当前控制组里的所有进程,包括子进程,都会停止运行;

mixed:表示主进程将收到SIGTREM信号,而子进程将收到SIGKILL信号;

none:只执行服务的stop命令,不会杀死任何进程;

Restart参数:表示服务停止后,systemd的重启方式,可设置的值有如下:

on-failure表示任何意外导致进程停止运行,都会重启该进程,如果是使用systemctl stop命令,则不会重启进程;

no:表示退出后不会重启;

on-success:只有进程正常退出时,才会重启该进程;

on-abnormal:当进程被信号中止或者超时,才会重启;

on-abort:只在收到没有被捕捉到的信号导致进程停止运行时,才会重启;

on-watching:超时退出,则会重启;

always:表示不管任何原因导致进程退出,都会重启;

RestartPreventExitStatus参数表示当进程的退出码和该参数设置的值一样时,则会无视Restart参数的设置,重启进程;

RestartSec参数:表示重启间隔的时间,以秒为单位;

Type参数:设置进程的启动类型,有如下值可设置:

forking:以fork方式启动;

simple:启动的进程为主进程;

oneshot:类似simple值,但是只执行一次;

dbus:等待D-Bus信号后才启动;

notify:和simple方式类似,但是在启动完成后会发出通知,通知systemd启动下一个服务;

idleh:和simple方式类似,但是要等其他任务执行完,才启动该服务;

WorkingDirectory参数:表示启动路径,即进程的运行路径;

[Install]单元参数

[Install]部分绝对了该service服务是如何做到开机启动的。

WantedBy参数:表示该服务所在的服务组,服务组通常有两种:

multi-user.target:表示多用户命令行状态,这个组里的所有服务都会开机启动graphical.target:表示图形用户状态,严格的说,也是依赖于multi-user.target服务组的;

Alias参数:表示一个链接别名,可以使用该别名来操作该service服务;

0 阅读:2

叶sir学编程

简介:感谢大家的关注