【问题标题】:activate and run oneshot service before deactivation of another service在停用另一个服务之前激活并运行 oneshot 服务
【发布时间】:2015-09-13 11:04:37
【问题描述】:

我有一个oneshot 类型的服务,我想在停用另一个服务之前运行它。换句话说,只要其他服务收到停用信号,我希望 my service 激活、运行其进程并终止。只有当我的服务完成后,才能允许其他服务停用。

如何在 systemd 中实现这一点?

【问题讨论】:

    标签: linux service systemd


    【解决方案1】:

    有一种可能的方法,在您正在停用的服务文件的 [Unit] 部分中使用 OnFailure=xyz.service,其中 xyz.service 将是您要激活的服务。

    现在有一个缓存,如果您想在运行进程后终止新激活的服务并保持进程运行,则必须使用 shell 脚本运行该服务并运行该脚本 ExecStart=/bin/sh lmn.sh 在您的 xyz.service 文件中。

    否则你可以直接给ExecStart=/usr/bin/hello 来运行你的进程。在这里,您的服务文件将处于活动状态,直到您的进程运行。

    例如。正在停用的服务文件。

    [Unit]
    Description=...
    OnFailure=xyz.service
    
    [Service]
    .
    .
    .
    

    xyz.service 文件

    [Unit]
    .
    .
    
    [Service]
    .
    .
    ExecStart=/bin/sh lmn.sh
    .
    .
    

    ExecStart=/usr/bin/hello
    

    【讨论】:

    猜你喜欢
    • 2023-03-22
    • 2016-04-06
    • 1970-01-01
    • 2015-11-02
    • 2012-03-28
    • 1970-01-01
    • 2016-04-26
    • 2023-04-05
    • 2012-07-22
    相关资源
    最近更新 更多