Bunu bir iş arkadaşınızla uzun bir tartışmadan sonra sormak istiyorum, burada gerçekten bir açıklama yapmak isterim.
" &
" Komut satırına ekleyerek veya CTRL-Z
" bg
" ile arka planda devam ettirerek veya " " ile arka planda devam ettirerek bir arka plan işlemi başlatırım . Sonra oturumu kapatıyorum.
Ne oluyor?
Bir SIGHUP tarafından öldürülmesi gerektiğinden eminiz, ama bu olmadı; tekrar giriş yaptıktan sonra süreç mutlu bir şekilde çalışıyordu ve pstree
"kabul ettiğini" gösterdi init
.
Beklenen davranış bu mu?
Ama öyleyse, öyleyse, nohup
emrin amacı nedir? Öyle görünüyor ki, süreç yine de, onsuz öldürülmeyecek ...
Düzenle 1
Biraz daha detay:
- Komut, fiziksel konsoldan değil bir SSH oturumundan başlatıldı.
- Komut olmadan
nohup
ve / veya&
; daha sonra ile askıya alınmışCTRL-Z
ve arka plan ile sürdürülmüştürbg
. - SSH oturumu vermedi bırakın. Gerçek bir oturum kapatıldı ("
exit
" komutu). - İşlem bir
scp
dosya kopyalama işlemiydi. - Tekrar oturum açtıktan sonra,
pstree
çalışan ve çocuk olduğu süreci gösterdiinit
.
Düzenle 2
Soruyu daha net bir şekilde ifade etmek için: Bir işlemi arka plana koymak ( &
veya veya kullanarak bg
) SIGHUP
tıpkı nohup
komutta olduğu gibi yoksaymaya neden olur mu?
Düzenle 3
El ile bir gönderme çalıştı SIGHUP
için scp
: o çıkıldı, kesinlikle sinyalini yok bu yüzden.
Sonra tekrar başlatmayı, arkaplana koyup oturumu kapatmayı denedim: oturumu kapattı init
ve çalışmaya devam etti ve tekrar oturum açarken orada buldum.
Şimdi oldukça şaşırdım. SIGHUP
Oturumu kapattıktan sonra hiç gönderilmemiş gibi görünüyor .
1>/dev/null 2>&1
bash, vb.