Çalıştığını iddia eden bir kullanıcıdan yanıt okudum
foo 2>&1 >& output.log &
neden olacaktır fooonlar çıkış yaptığınızda da çalışmaya devam. Bu kullanıcıya göre, bu SSH bağlantıları üzerinde bile çalıştı.
SSH ile bağlantıyı kesme veya TTY'yi sona erdirme durumunda, kabuğun ve dolayısıyla süreçlerinin bir SIGHUP alacağına inanıyorum. Bu, benim varsayımı altında, kullanılmasının tek sebebi oldu nohupgibi durumlarda ya tmux, screenvd.
Sonra glibc'in el kitabına baktım :
Bu sinyal ayrıca bir terminaldeki kontrol sürecinin sonlandırılmasını o oturumla ilişkili işlere rapor etmek için kullanılır; bu sonlandırma oturumdaki tüm süreçleri kontrol terminalinden etkili bir şekilde ayırır.
Bu düşüncelerimi teyit ediyor gibi görünüyor. Ama daha ileriye baktığımızda diyor ki :
İşlem, kontrol terminali olan bir oturum lideriyse, ön plan işindeki her işleme bir SIGHUP sinyali gönderilir ve kontrol terminali bu oturumdan ayrılır.
Yani, demek işler olacak arka planda sokuyor değil SIGHUP alma?
Daha fazla karışıklığım için, etkileşimli bir Zsh oturumu yürüttüm, koştum yes >& /dev/null &ve exityazdım, Zsh beni iş yaptığım konusunda uyardığında ve exitikinci bir kez yazdıktan sonra , bir işin SIGHUPed olduğunu söyledi. Bash'te tam olarak aynısını yapmak işi devam ettirir ...
logoutveyeshala çalışıyor.