что означает «bash :нет управления заданиями в этой оболочке»?

Я думаю, что это связано с тем, что родительский процесс создает новый подпроцесс и не имеет 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 :нет управления заданиями в этой оболочке".

47
задан Minix 10 February 2015 в 11:37
поделиться