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

问题描述 投票:9回答:3

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

linux operating-system systemd
3个回答
19
投票

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

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


2
投票

从Systemd page下面是RemainAfterExit的描述

RemainAfterExit =采用一个布尔值,指定即使退出所有进程,服务是否应被视为活动状态。默认为否。

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.