Jurnalul Geek

utilitarul nohup execută o linie de comandă astfel încât comanda continuă să ruleze după ce vă deconectați. Cu alte cuvinte, nohup determină un proces de a ignora un semnal SIGHUP. În funcție de modul în care este configurat shell-ul local, un proces început fără nohup și care rulează în fundal ar putea fi ucis atunci când vă deconectați.,

Sintaxa pentru a rula comanda nohup

comanda De bază sytax pentru a rula o comanda nohup este după cum urmează:

# nohup command_with_options &

Orice ieșire din munca ta va fi redirecționat către un fișier numit ‘ nohup.afară, dacă nu se specifică altfel cu

# nohup command > myout.file 2>&1

care trimite toate de ieșire fișierul myout.dosar.

Salvarea de ieșire de nohup comanda

Dacă nu redirecționare de ieșire de la o comanda de a executa folosind nohup, ambele de ieșire standard și eroarea standard sunt trimise la fișier numit nohup.în directorul de lucru., Dacă nu aveți permisiunea de scriere pentru directorul de lucru, nohup trimite ieșire la ~/nohup.afară.de asemenea, puteți trimite ieșirea către orice alt fișier specificat de dvs., așa cum se arată mai sus în sytax-ul comenzii.

Exemple

rularea nohup fără a specifica un fișier de ieșire

să facem un exemplu și să testăm că de fapt continuă să funcționeze după ce v-ați deconectat. Vom lansa un scenariu numit script.sh., De contect de script-ul este, după cum urmează:

# cat script.sh#!/bin/shwhile(true)do echo "Hello World!" sleep 10done

vă Permite să rulați scriptul în backgroupd cu comanda nohup:

# nohup script.sh & 179 $ nohup: appending output to `nohup.out`

după Cum puteți vedea mai sus nu am specificat un fișier de ieșire. Astfel, ieșirea standard și eroarea standard în mod implicit intră în nohup.fișier out în directorul de unde a fost invocat scriptul. De asemenea, numărul 179 a specificat ID-ul procesului(PID) al lucrării. Acest PID poate fi verificat în ieșirea de comandă” ps-ef”, așa cum se arată mai jos.,acum ieșiți din shell, conectați-vă din nou și executați următoarea comandă:

$ ps x | grep script.sh179 ? S N 0:01 sh /root/script.sh 506 p2 S 0:00 grep script.sh

scriptul încă funcționează. Utilizați „ps-ef / grep ps1” dacă sistemul dvs. nu acceptă ps x. puteți verifica, de asemenea, fișierul de ieșire nohup.afară pentru mai multe confirmări.

# cat nohup.outHello World!Hello World!Hello World!Hello World!...

NOTĂ: Dacă executați o altă folosind comanda nohup, producția este adăugat la cele existente nohup.fișier afară. Aveți grijă când executați mai multe comenzi din același director, deoarece toate ieșirile sunt trimise la același nohup.fișier, care poate deveni confuz.,

de Funcționare nohup specificarea unui fișier de ieșire

Acum scriptul de mai sus poate fi, de asemenea, rula comanda nohup și specificând un obicei de ieșire fișierul așa cum se arată mai jos:

# nohup script.sh > /tmp/script.out 2>&1 14235

Concluzie

Dacă se execută un proces și nu cred că va fi finalizat până când vă deconectați de zi, utilizați comanda nohup. Nohup va continua procesarea atunci când ieșiți din cont. Nohup înseamnă nu închide.

Author: admin

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *