【问题标题】:How to list processes detached in a script?如何列出脚本中分离的进程?
【发布时间】:2014-01-15 11:01:06
【问题描述】:

我有:

$ cat ./test
#!/bin/bash

gulp dev &

然后运行它:

$ ./test
...

(.. 按回车键获取命令提示符) 脚本中的命令启动node 进程。但我在后台进程中没有:

$ jobs -p

打印空列表。因此,目标是能够列出/杀死(多个)在单个脚本中启动和分离的进程。怎么做?

【问题讨论】:

    标签: node.js bash shell process detach


    【解决方案1】:

    您的交互式 shell 只管理它启动的作业。当您将脚本作为命令运行时,后台进程由子 shell 启动,而不是原始 shell。

    您需要 source 脚本,以便它可以由您的交互式 shell 运行:

    source ./test
    

    【讨论】:

    • 太好了,它有效!一个相关的问题: alias seskill='kill $(jobs -p)' 不起作用(而是打印 kill 使用情况)。如何治愈?
    • $(...) 在子shell中运行,因此无法列出当前shell的作业。
    • 那么是否可以创建一个快捷方式来终止所有会话的后台进程?
    • 这个问题unix.stackexchange.com/questions/43527/… 说你的命令应该有效。
    • 您的别名对我有用。如果我没有后台作业,我只会收到使用消息。
    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多