我认为它与创建新子进程的父进程有关,并且没有 tty。谁能解释引擎盖下的细节?即bash、进程创建等相关的工作模型?
这可能是一个非常广泛的主题,因此也非常感谢指向帖子的指针。我用谷歌搜索了一段时间,所有结果都是关于非常具体的案例,没有一个是关于幕后故事的。为了提供更多上下文,下面是导致“bash:此 shell 中没有作业控制”的 shell 脚本。
#! /bin/bash
while [ 1 ]; do
st=$(netstat -an |grep 7070 |grep LISTEN -o | uniq)
if [ -z $st ]; then
echo "need to start proxy @$(date)"
bash -i -c "ssh -D 7070 -N user@my-ssh.example.com > /dev/null"
else
echo "proxy OK @$(date)"
fi
sleep 3
done
这一行:
bash -i -c "ssh -D 7070 -N user@my-ssh.example.com > /dev/null"
是“bash:no job control in this shell”的来源。
原文由 luanjunyi 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可能需要启用作业控制: