给定作业的 pid,将暂停的作业置于后台/前台和运行状态

给定作业的 pid,将暂停的作业置于后台/前台和运行状态

我正在自己的 shell 上工作,我对工作管理感到困惑。

我能够列出用户拥有的进程并暂停给定其 pid 的任何进程。但是,如标题所述,我需要将暂停的作业恢复到运行状态以及后台或前台。

我的命令将是这样的:

mybg <PID>
myfg <PID>

现在,我只想使用该 pid 获取进程名称,并将 bg/fg 与进程名称一起使用。这没有多大帮助。

答案1

如何暂停工作?我知道的唯一方法是发送 SIGSTOP,您可以在 bash 中使用 Ctrl-Z 执行前台作业。

由于此后它不再运行,因此它不再是前台作业,因此您的键盘与它没有任何连接。 shell 是前台作业,您必须告诉 shell fg 或 bg 它的子进程。

但是,shell 会向作业发送 SIGCONT 来取消停止它。该进程并不直接获取这些信号。内核更改 Pid 的运行状态,如果作业处于“已停止”状态,调度程序将忽略该作业。

您也可以直接kill -STOP %1or (job id 或 pid) 和bash 中的 ,kill -STOP 14193​​ 相同。-CONT

相关内容