在创建新的systemd服务时,何时需要将RemainAfterExit选项设置为true?

Adi*_*han 12 linux operating-system systemd

我正在尝试写一些服务.他们中的一些人将'type'选项设置为oneshot.但是当选项'RemainAfterExit'需要设置为true时,我仍然感到困惑.(不仅仅是该服务即使在退出后也需要活跃).

Mar*_*555 22

使用RemainAfterExit=yes的服务,这在某种程度上改变系统的状态.当您希望恢复该状态时,您只需停止该服务即可.然后你可以再次启动它,但不能没有先停止它.一个例子是service,它在文件系统中创建一个标志,供其他应用程序使用.在开始时,它创建标志文件,然后存在,但systemd将服务保持为活动状态.然后你可以停止它,它将删除标志文件.

使用RemainAfterExit=no的服务,做一些动作,但不改变系统的状态.一个例子是清理服务/tmp.你启动它,它将完成它的工作然后不活动(不需要停止它).你可以随时重新开始它,并将再次开始工作(清理).


Dar*_*ght 10

从Systemd页面下面是RemainAfterExit的说明

RemainAfterExit= 使用一个布尔值来指定服务是否应该被视为活动的,即使它的所有进程都退出了。默认为否。

这只是意味着,如果您从服务启动的所有进程都退出,当您查询服务的状态时,如果此标志设置为 true,它仍然表示活动。如果设置为 false,则服务状态为非活动状态。

当您在启动期间添加对服务的依赖时,这特别有用。其中服务状态对于启动依赖服务很重要。


Mar*_*erg 0

该标志对于您自己的簿记和会计很有用。如果认为服务在完成后处于活动状态对您有用,则可以设置该标志。