无法杀死已停止的作业 - 子流程中没有作业控制?

时间:2016-02-19 08:58:23

标签: shell jobs kill job-control

我正在使用ash / dash并试图杀死一个子进程 - 它似乎没有响应:

sh &打开子流程,jobs传递[1]+ Stopped (tty Input) sh

但尝试使用kill %1kill 26672杀死此作业并不起作用。 jobs再次发送[1]+ Stopped (tty Input) sh

使用fg将作业放到前台后打开shell进行输入。 ctrl+cctrl+z都不起作用,但我可以使exitkill -SIGKILL $$分别使用kill -STOP $$停止/暂停流程来杀死该流程(没有{{} 1}} - 灰烬中的命令。

另一方面 - 使用suspend执行此操作可以正常工作直到sleep 100并使用fg停止处理。然后我无法ctr+z这个停止的工作。

那么我错过了什么以及杀死一份停止工作的解决方案是什么?我是否必须处理kill以及如何处理?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以通过kill -SIGCONT %number按下已停止的流程,如果您需要终止该流程,可以kill -SIGTERM %number.将其删除尝试此操作我认为这会对您有所帮助。

答案 1 :(得分:0)

您可以尝试

杀死-9 $(jobs -p)

或者,只需执行exit命令注销,它就会自动杀死已停止的作业