kommandoen nohup
udfører et andet program, der er angivet som dets argument, og ignorerer alle SIGHUP
(hangup) signaler. SIGHUP
er et signal, der sendes til en proces, når dens kontrollerende terminal er lukket.
normalt, når du kører et program over SSH, hvis din forbindelse falder, eller du logger ud, afsluttes sessionen, og alle processer, der udføres fra terminalen, stopper. Det er her kommandoen nohup
kommer godt med., Det ignorerer alle hangup signaler, og processen vil fortsætte med at køre.
Hvordan man kan Bruge nohup Kommandoen #
syntaks for nohup
kommandoen er som følger:
nohup COMMAND
kommandoen accepterer ikke andre muligheder, bortset fra den standard --help
og --version
.,
Lad os tage et kig på følgende eksempel:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup
kører mycommand
kommando i forgrunden og omdirigerer kommando udgang til nohup.out
fil. Denne fil oprettes i den aktuelle arbejdsmappe . Hvis brugeren, der kører kommandoen, ikke har skrivetilladelser til arbejdsmappen, oprettes filen i brugerens hjemmekatalog.
Hvis du logger ud eller lukker terminalen, afsluttes processen ikke.,
kørsel af kommandoen i baggrunden #
brug afnohup
i forgrunden er ikke særlig nyttig, fordi du ikke kan interagere med skallen, før kommandoen er færdig.
for At køre forespørgslen i baggrunden , tilføj &
symbolet ved udgangen af kommandoen:
nohup mycommand &
output omfatter shell-job-ID ‘ et (omgivet af parentes) og proces-ID:
25177
Du kan bruge den job-ID ‘ et til at bringe kommando i forgrunden ved brug af fg
kommandoen.,
Hvis du ønsker at afbryde processen, skal du bruge kill
kommando efterfulgt af proces-ID:
kill -9 25132
Omdirigere Outputtet til en Fil #
Som standard, nohup
kommando omdirigerer output til nohup.out
fil. Hvis du vil omdirigere output til en anden fil, skal du bruge standard shell omdirigering.,
For eksempel til at omdirigere standard output og standard fejl til mycommand.out
ville du bruge:
nohup mycommand > mycommand.out 2>&1 &
til At omdirigere standard output og standard fejl på de forskellige filer:
nohup mycommand > mycommand.out 2> mycommand.err &
Alternativer #
Der er flere alternative programmer, som du kan bruge til at undgå en kommando til at blive afsluttet, når du lukker terminalen, eller bliver afbrudt.,
Skærm #
Skærmen eller GNU Screen er en terminal multiplexer program, der giver dig mulighed for at starte en skærm session og åben en række af windows (virtuelle terminaler) i session. Processer, der kører på skærmen, fortsætter med at køre, når deres vindue ikke er synligt, selvom du bliver afbrudt.
TMU. #
TMU. er et moderne alternativ til GNU-skærmen. Med TMU.kan du også oprette en session og åbne flere vinduer inde i den session. TMU. – sessioner er vedvarende, hvilket betyder, at programmer, der kører i TMU., fortsætter med at køre, selvom du lukker terminalen.,
Diso .n #
disown
er en shell indbygget, der fjerner en shell job fra shell job kontrol. I modsætning til nohup
, kan du også bruge disown
på kørende processer.
konklusion #
nohup
giver dig mulighed for at forhindre, at kommandoer afsluttes, når du logger ud eller afslutter terminalen.