【问题标题】:how to kill a group of processes in clozure cl?如何杀死clozure cl中的一组进程?
【发布时间】:2012-01-25 00:17:27
【问题描述】:

我想在 ccl 中运行一个 shell 命令,但是这个命令可能由于某种原因被挂起。所以我想杀死这个命令生成的所有子进程。我该怎么做?

我试过 trivial-shell 运行 shell 命令,当命令没有挂起时,它运行良好。

我还使用了 trivial-shell 中的 with-timeout 宏来检查超时,它只是给我一个超时错误条件,shell 进程仍然挂在那里。在这里,我只想把他们都杀了,然后回报一些东西。

谢谢大家。

【问题讨论】:

  • 我建议在 Clozure CL 邮件列表中提出这样的问题 - 专家都在。

标签: shell lisp kill ccl


【解决方案1】:

据我所知,trivial-shell 仅提供同步 shell 调用,因此没有简单的方法可以终止正在进行的子进程。

我建议使用 :wait nil 调用 Clozure Common Lisp 的特定于实现的 ccl:run-program 函数来异步运行作业。然后,如果需要,您可以在正在运行的进程上调用 ccl:signal-external-process 来杀死它。 Documentation here.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 2014-10-03
    • 1970-01-01
    • 2011-02-15
    • 2022-01-14
    相关资源
    最近更新 更多