Există câteva moduri de a face ca procesul de fundal să fie rezistent închide mai întâi, ai nohup
care îl instruiește pe semnal funcţie de ignorat SUPRAȚI
înainte de a se înlocui cu noul proces (execvp). Cu toate acestea, pentru aplicațiile care reimplementează gestionarea semnalului, acest lucru nu este posibil.
În continuare, cel setsid
comanda funcționează aproape în același mod, dar în loc să manipuleze semnalul, setsid() este folosit pentru a crea o nouă sesiune, acest lucru nu va face aplicația dumneavoastră imună, dar cel puțin nu va mai primi niciun semnal de la terminal. Acum, aceste două comenzi pot fi combinate, de exemplu, dacă SIGHUP este onorat, sau nohup va fi redundant.
În sfârșit, cu neagă
puteți fie să vă eliminați aplicația din joburile active, fie să marcați aplicația folosind -h
pentru a nu primi SIGHUP trimis din shell. Acum, ca și cu setsid
, acest lucru nu va face aplicația dumneavoastră imună, dar atâta timp cât SIGHUP nu este trimis direct la proces, ar trebui să fiți bine.
firefox &>/dev/null & respinge
De asemenea, puteți renunța la o aplicație care rulează.
$ firefox
ctrl + z
^Z
[1]+ Firefox oprit
$ bg
$ neagă
neagă
de asemenea, ia ca argument fie jobspec, fie pid.