如何在停止状态下启动作业?

nib*_*bot 3 unix bash shell job-control

在 中bash,如何在停止状态下启动作业,就像我正常启动它然后立即按下 Ctrl-Z 一样?

或者就好像我已经立即向进程发送了 SIGSTOP,但没有给进程在收到 SIGSTOP 之前执行的机会。

cho*_*oba 6

您可以启动一个新的子shell,立即停止它,然后(即在重新运行之后)运行您的命令。我使用 $BASHPID 变量来获取子 shell 的 PID,因为 $$ 仍然返回父级的 PID:

( kill -SIGSTOP $BASHPID; exec my_command )
Run Code Online (Sandbox Code Playgroud)

exec在此处使用将导致my_command进程使用与子 shell 相同的 PID。