Я думаю, что это связано с родительским процессом, создающим новый подпроцесс и не имеющим tty. Может ли кто-нибудь объяснить детали под капотом? то есть соответствующей рабочей модели bash, создания процесса и т.д.
Это может быть очень широкая тема, поэтому ссылки на сообщения также очень ценятся. Я давно искал Googled, все результаты касаются очень конкретного случая, и никто не рассказывает об истории сцены. Чтобы предоставить больше контекста, ниже находится оболочка script, в результате получившая 'bash: отсутствие управления заданием в этой оболочке'.
#! /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 [email protected] > /dev/null"
else
echo "proxy OK @$(date)"
fi
sleep 3
done
Эта строка:
bash -i -c "ssh -D 7070 -N [email protected] > /dev/null"
находится где "bash: управление заданиями в этой оболочке" не приходит.