Igorka cum ar fi procesul de unbind de la ubuntu terminale

Într-o conferință dedicată proceselor și a sarcinilor în bash profesor ne-a spus despre comanda nohup. care poate proteja procesul de semnal SIGHUP. care trimite procese copil, procesul său părinte atunci când finalizarea activității sale. În cazul în care consola de text Linux sau terminalul grafic de comandă (-gnome terminal) este rulat. care rulează în fundal atunci când închideți terminalul sau ieșirea din consolă, echipa se va opri, de asemenea, activitatea lor.

Când mai aproape de practică, vorbim despre următorul. Un experiment. Rulați terminalul GUI (gnome-terminal) și scrie-l în echipă:

$ Gnome-calculator
[1] 3075
$ gedit
[2] 3076

$ Nohup: intrare este ignorată, se adaugă la ieșire la `nohup.out '

Și, de asemenea, apăsați Enter. Acum închide terminalul din nou, făcând clic pe „X“. Acum, cererea a continuat să lucreze și nu a închis. comandă nohup pot fi folosite, dar există o aplicație cu care nu funcționează. De exemplu, browser-ul Opera. Tastarea, Opera nohup # 038; și închiderea terminalului, Opera va finaliza, de asemenea, activitatea sa.

Cochilia bash are o comandă încorporat, care este mai potrivită pentru sarcina dorită. Se renega comanda. Aplicațiile care rulează în terminal în fundal (aplicații care rulează cu un semn # 038;) sunt sarcini sau locuri de muncă (jobspec mană) care formează masa de sarcini. La ieșirea din terminalul bash scanează acest tabel și trimite un semnal la toate locurile de muncă SIGHUP. Echipa renega este angajat pentru a elimina locurile de muncă din tabelul de locuri de muncă. Vizualizați informații despre comanda renega poate fi în om bash ajutor. Doar în cazul în care voi cita aici un fragment de referință:

Fără opțiuni, fiecare jobspec este scos din tabelul de locuri de muncă activă. Dacă jobspec nu este prezent, și nici -a, nici -r este furnizat, se foloseste notiunea shell a lucrării curente. Dacă opțiunea -h este dată, fiecare jobspec nu este scos din tabel, dar este marcat astfel încât SIGHUP nu este trimis la locul de muncă în cazul în care shell-ul primește un SIGHUP. În cazul în care nu jobspec este prezent, și nici -a, nici opțiunea -r este furnizat, este utilizat lucrarea curentă. În cazul în care nu jobspec este furnizat, opțiunea -a mijloace pentru a elimina sau de a marca toate locurile de muncă; opțiunea -r fără un argument jobspec restricționează operarea la rularea de locuri de muncă. Valoarea returnata este 0, cu excepția cazului un jobspec nu specifică un loc de muncă valabil.

Apoi, câteva exemple. Deschideți terminal și scrie comenzi: