在Linux中,如何在不使用fg命令或ctrl+z的情况下停止或暂停或挂断作业?

在Linux中,如何在不使用fg命令或ctrl+z的情况下停止或暂停或挂断作业?

我是 Linux 新手,但我有一个作业,它需要停止、暂停和挂起某些作业,而不使用像这张图这样的 fg 或 ctrl+z 命令,数字后面的点代表什么,& 符号代表什么第三份工作按查看图片

答案1

所示图形是jobs命令的输出(转录用于打印,因为该字体不能来自实际终端)。

假设您有一个名为forever(需要无限循环,希望有嵌入sleep 10以避免 100% CPU 使用率)的脚本。

然后想象一下您在 shell 中启动了六个全部运行的作业forever,并从一个不同的外壳窗口。您一次只能有一个前台命令,因此您需要先挂起作业 1,然后才能启动作业 2,依此类推。

所有作业状态都与您发送(使用kill)到进程号的不同 SIG 代码相关。您需要发现进程号,因为作业号仅与第一个 shell 相关,并且您需要从第二个 shell 发送信号。经常使用pstree $PPID可能会有所帮助。

作业 3 处于后台,而其他 5 个作业已被外部禁止,因此没有前台任务,您会再次收到 shell 提示符。您可以在其中发出jobs命令并获取输出。

显示&作业 3 在后台启动。它们- . +是 shell 输出的作业状态信息。

编辑:我无法在 Bash 中完成这项工作。我认为这可能与 Bash 在您请求之前积极收集进程终止状态的方式有关。稍后我会尝试另一个 shell。

相关内容