kommandot nohup
utför ett annat program som anges som dess argument och ignorerar alla SIGHUP
(hangup) signaler. SIGHUP
är en signal som skickas till en process när dess kontrollerande terminal är stängd.
vanligtvis, när du kör ett program över SSH, om din anslutning sjunker eller du loggar ut, avslutas sessionen och alla processer som utförs från terminalen kommer att sluta. Det är här kommandotnohup
är praktiskt., Det ignorerar alla hangup signaler, och processen fortsätter att köras.
så här använder du kommandot nohup #
syntaxen för kommandotnohup
är följande:
nohup COMMAND
kommandot accepterar inga andra alternativ förutom standard--help
och--version
.,
låt oss ta en titt på följande exempel:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup
kör kommandotmycommand
I förgrunden och omdirigerar kommandoutgången till kommandot nohup.out
arkiv. Den här filen skapas i den aktuella arbetskatalogen . Om användaren som kör kommandot inte har skrivbehörighet till arbetskatalogen skapas filen i användarens hemkatalog.
om du loggar ut eller stänger terminalen avslutas inte processen.,
att köra kommandot i bakgrunden #
att användanohup
I förgrunden är inte särskilt användbart eftersom du inte kommer att kunna interagera med skalet förrän kommandot är klart.
för att köra kommandot i bakgrunden , Lägg till &
– symbolen i slutet av kommandot:
nohup mycommand &
utmatningen innehåller Shell job ID (omgiven av parentes) och process ID:
25177
Du kan använda jobb-ID för att föra kommandot in i förgrunden med hjälp av
25177
id = ”0fdc5fcab4” >
kommando.,
om du av någon anledning vill avsluta processen, använd kommandotkill
följt av process-ID:
kill -9 25132
omdirigera utmatning till en fil #
som standard omdirigerarnohup
kommandoutgången tillnohup.out
fil. Om du vill omdirigera utmatningen till en annan fil, använd standard shell omdirigering.,
till exempel, för att omdirigera standardutmatningen och standardfelet tillmycommand.out
skulle du använda:
nohup mycommand > mycommand.out 2>&1 &
för att omdirigera standardutmatningen och standardfelet till olika filer:
nohup mycommand > mycommand.out 2> mycommand.err &
alternativ #
det finns flera alternativa program som du kan använda för att undvika ett kommando avslutas när du stänger terminalen eller kopplas bort.,
skärm #
skärm eller GNU-skärm är ett terminalmultiplexerprogram som låter dig starta en skärmsession och öppna valfritt antal windows (virtuella terminaler) inuti den sessionen. Processer som körs i skärmen fortsätter att köras när deras fönster inte syns även om du kopplas bort.
Tmux #
Tmux är ett modernt alternativ till GNU-skärmen. Med Tmux kan du också skapa en session och öppna flera fönster i den sessionen. Tmux sessioner är ihållande, vilket innebär att program som körs i Tmux fortsätter att köras även om du stänger terminalen.,
Disown #
disown
är ett skal som tar bort ett skaljobb från skalets jobbkontroll. Till skillnad från nohup
kan du också användadisown
på processer som körs.
slutsats #
nohup
låter dig förhindra att kommandon avslutas när du loggar ut eller lämnar terminalen.