Я думаю, что это связано с тем, что родительский процесс создает новый подпроцесс и не имеет tty. Кто-нибудь может объяснить детали под капотом? то есть связанная рабочая модель bash, создание процесса и т. д.?
Это может быть очень широкая тема, поэтому указатели на сообщения также очень ценятся. Я некоторое время гуглил, все результаты касались очень конкретного случая, и ни один не касался истории за сценой. Чтобы предоставить больше контекста, ниже приведен сценарий оболочки, в результате которого «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 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 :нет управления заданиями в этой оболочке".