【问题标题】:How to run subprocess with systemd-run and wait for it to finish如何使用 systemd-run 运行子进程并等待它完成
【发布时间】:2019-10-20 18:51:35
【问题描述】:

我需要从我的 Java 进程中运行一个子进程,这将杀死父进程。我如何确保:

  • 杀死父母后孩子不会死
  • 父级等待子级杀死它(java 调用阻塞)

我正在使用 systemd-run 运行子进程,这将其置于不同的控制组下,这意味着子进程在杀死父进程时不会死亡。这种方法的问题是父进程不会等待子进程完成。

我想要的是阻止子进程的执行,让它优雅地杀死父进程。

【问题讨论】:

  • 也许是个愚蠢的问题,但如果子进程应该杀死父进程,为什么不能在父进程创建子进程后简单地让父进程退出?
  • @RobertKock 一点也不傻。那是我用于临时解决方法的方法。问题是,我想知道 x 分钟后子进程是否仍在运行(意味着它没有杀死父进程),因此子进程的执行存在问题。

标签: java systemd ubuntu-18.04


【解决方案1】:

我找到了解决方案。 systemd-run 命令有一个名为 --wait 的标志,它提供了我正在寻找的确切行为。

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 2013-08-11
    • 1970-01-01
    相关资源
    最近更新 更多