无法终止停止的作业 - 子进程中没有作业控制?
Cannot kill stopped job - no job control in subprocess?
我正在使用 ash/dash 并尝试终止一个子进程 - 它似乎没有响应:
sh &
打开一个子流程并且 jobs
交付 [1]+ Stopped (tty Input) sh
.
但是试图用 kill %1
或 kill 26672
终止这个工作是行不通的。 jobs
再次送达 [1]+ Stopped (tty Input) sh
。
使用 fg
将作业置于前台后,打开 shell 进行输入。 ctrl+c
和 ctrl+z
都不起作用,但我可以分别使用 exit
或 kill -SIGKILL $$
终止进程 stop/suspend 使用 kill -STOP $$
的进程(没有suspend
-灰烬中的命令)。
另一方面 - 用 sleep 100
做这个工作正常,直到我 fg
并用 ctr+z
停止这个过程。然后我无法 kill
这个停止的工作。
那么我遗漏了什么以及终止停止工作的解决方案是什么?我是否必须处理 set -m
以及如何处理?
提前致谢。
您可以通过 kill -SIGCONT %number
来停止进程,如果您需要终止该进程,您可以通过 kill -SIGTERM %number.
来终止它,我认为这会对您有所帮助。
你可以试试
kill -9 $(工作-p)
或者,只需执行退出命令即可注销,它会自动杀死已停止的作业
我正在使用 ash/dash 并尝试终止一个子进程 - 它似乎没有响应:
sh &
打开一个子流程并且 jobs
交付 [1]+ Stopped (tty Input) sh
.
但是试图用 kill %1
或 kill 26672
终止这个工作是行不通的。 jobs
再次送达 [1]+ Stopped (tty Input) sh
。
使用 fg
将作业置于前台后,打开 shell 进行输入。 ctrl+c
和 ctrl+z
都不起作用,但我可以分别使用 exit
或 kill -SIGKILL $$
终止进程 stop/suspend 使用 kill -STOP $$
的进程(没有suspend
-灰烬中的命令)。
另一方面 - 用 sleep 100
做这个工作正常,直到我 fg
并用 ctr+z
停止这个过程。然后我无法 kill
这个停止的工作。
那么我遗漏了什么以及终止停止工作的解决方案是什么?我是否必须处理 set -m
以及如何处理?
提前致谢。
您可以通过 kill -SIGCONT %number
来停止进程,如果您需要终止该进程,您可以通过 kill -SIGTERM %number.
来终止它,我认为这会对您有所帮助。
你可以试试
kill -9 $(工作-p)
或者,只需执行退出命令即可注销,它会自动杀死已停止的作业