我注意到一些系统文档中的方法有一些重大的变化,以及有关如何configuration一个或多个服务来使用同一个定时器的操作方法。
就我所能拼凑在一起(虽然我可能是错的),这将描述什么WantedBy和单位参数在一个服务和定时器文件需要设置(不使用实际的代码示例在这里 – 为了减less发布长度)为单个服务,相反,多个服务configuration使用一个定时器:
定时器为单一服务
My.Service1 'WantedBy' Param: N/A (1) My.Timer 'Unit' Param: My.Service1 (2) My.Timer 'WantedBy' Param: MultiUser/Basic.Target (3)
(1) 服务文件不需要带有WantedBy参数的[Install]部分。
- 有没有办法通过CoreOS上的云configuration来configurationjournald.conf?
- Systemd不按预期的用户启动服务
- CentOS环境configuration文件的语法
- Ubuntu 16.04,PHP-FPM在使用libsodium-php模块启动时超时
- 未使用软件包pipe理器安装的软件的适当系统单元位置
(2) 在定时器的[Timer]部分中,Unit参数应指向My.Service1服务文件。
(3) 定时器文件有一个WantedBy参数,指向一些特殊的系统目标,用来启动它。
定时器为多个服务
My.Service1 'WantedBy' Param: Timer.Target (1) My.Service2 'WantedBy' Param: Timer.Target (1) My.Service3 'WantedBy' Param: Timer.Target (1) Timer 'Unit' Param: Timer.Target (2) Timer 'WantedBy' Param: ???
(1) 服务需要使用WantedBy参数连接到相同的定义的目标。
(2) [Timer]单元参数也应该指向目标。
有关后者configuration的示例,请参阅此方法 。 我将把它算作例1.但是我发现了另外一些与此不同的例子(见下文)。
例2和例3说它应该像这样configuration:
My.Service1 WantedBy: Timer.Target My.Service2 WantedBy: Timer.Target My.Service3 WantedBy: Timer.Target Timer 'Unit' Param: My.Service1 (1) Timer 'WantedBy' Param: MultiUser/Basic.Target
(1)这在文档中应该是一个疏忽,因为如果您将单元指向您的多个服务中的一个,则其他服务将无法使用该计时器。 这可能是由于在这里使用的“看上面”的方法来引导读者回到单一的服务configuration,而没有实际提及(重要的)什么需要改变。
然后在示例4中,其configuration看起来像实际上可以工作,但它通过直接在/etc/systemd/system/Timer.Target.wants/子目录下创build服务文件,以不同方式连接服务和目标,排除服务文件中的WantedBy参数。 从而:
My.Service1 'WantedBy' Param: N/A My.Service2 'WantedBy' Param: N/A My.Service3 'WantedBy' Param: N/A Timer 'Unit' Param: Timer.Target Timer 'WantedBy' Param: MultiUser/Basic.Target
我见过的例1和例4之间的混合方法是在/ etc / systemd / system /目录下创build服务文件(默认位置),并在/ etc / systemd下创build符号链接到这些服务文件/system/Timer.Target.wants文件,并在服务文件中排除 WantedBy参数(function上等同于示例4),而另一个configuration使用符号链接方法,但另外在服务文件中包含WantedBy参数多余的和不必要的)。
我的问题是,虽然例子4和混合的方法:为什么要放在* .wants目录下的任何东西都是必要的,如果声明一个WantedBy参数应该指示systemd为你这样做(正如在该页面上的参数)?
任何人都可以通过使用相同的计时器,在混淆的多重方法中,来configuration多个服务的最佳方式吗?
系统计时器总是激活一个单位。
如果您想要按照相同的时间表激活两个设备,我build议您创build两个包含相同时间表的清晰度计时器文件。
否则,您可以创build一个“服务单元”文件来启动所需的两个服务。
我不认为“WantedBy =”是定时器单元特别有用的概念。