W różnych systemach Linux widzę różne zachowanie w odniesieniu do sesji SSH zawieszających się przy wyjściu, gdy uruchomione są zadania w tle.
Jeśli zrobię dokładnie to samo
$ for f in 1 2 3 4 5; do echo $f >> output; sleep 5; done &
$ exit
Jeden zawiesi się, dopóki całe polecenie nie zostanie zakończone - czego oczekuję - a drugi natychmiast wyjdzie, ale pozostawi polecenie uruchomione.
Wiem, jak zapobiec zawieszaniu się sesji ( screen
lub przekierowaniu wejścia / wyjścia konsoli do lub z / dev / null) - chcę zrozumieć, dlaczego jeden z moich serwerów NIE zawiesza się tak, jak się spodziewałem.
Czy była wersja OpenSSH, w której zachowanie się zmieniło? Ten, który się zawiesza, to OpenSSH 3.9p1, ten, który się nie zawiesza, to OpenSSH 4.3p2.
Oba używają bash jako domyślnej powłoki logowania, a ja potwierdziłem, że huponexit
opcja jest wyłączona w obu przypadkach.
sah -v ...
daje ci jakieś wskazówki na temat tego, co sah robi wewnętrznie?Odpowiedzi:
Poniższy artykuł może dobrze wyjaśnić twoje pytanie http://www.snailbook.com/faq/background-jobs.auto.html
źródło