无法终止停止的作业 - 子进程中没有作业控制?

Cannot kill stopped job - no job control in subprocess?

我正在使用 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 $$ 终止进程 stop/suspend 使用 kill -STOP $$ 的进程(没有suspend-灰烬中的命令)。

另一方面 - 用 sleep 100 做这个工作正常,直到我 fg 并用 ctr+z 停止这个过程。然后我无法 kill 这个停止的工作。

那么我遗漏了什么以及终止停止工作的解决方案是什么?我是否必须处理 set -m 以及如何处理?

提前致谢。

您可以通过 kill -SIGCONT %number 来停止进程,如果您需要终止该进程,您可以通过 kill -SIGTERM %number. 来终止它,我认为这会对您有所帮助。

你可以试试

kill -9 $(工作-p)

或者,只需执行退出命令即可注销,它会自动杀死已停止的作业