Vi har berättat vad en Linux-bakgrundsprocess är och hur man startar den på rätt sätt. I den här artikeln berättar vi hur den fungerar i det här läget.
Att köra ett skript i Linux är en uppgift, du måste se till att det fungerar korrekt direkt efter att du har stängt terminalen. Terminalen stängs på följande sätt: du måste klicka på korset som finns i det övre hörnet av skärmen, detta leder till att alla bakgrundsprocesser avslutas. Det finns flera metoder för att spara dem om anslutningen till det interaktiva skalet går förlorad
Först: ta bort jobbkön från uppgiften genom att använda disown
:
disown
Som i de tidigare fallen, om det finns flera processer som körs samtidigt, bör numret på den i förhållande till vilken åtgärden kommer att utföras anges:
disown %1
Se till att uppgiften inte finns i uppgiftslistan. Hur man gör detta. Använd verktyget jobs -l
. För att visa hela listan över pågående processer används kommandot:
ps aux
Nästa metod: du sparar de processer som körs med kommandot nohup
. Detta kommando efter exekvering kommer i sin tur att utföra ett annat kommando, alla SIGHUP-signaler
ignoreras.
Du kan köra kommandot i bakgrunden så här:
nohup command &
Som du kan se i bilden ovan kommer kommandots utdata att skickas till nohup.out
. Det viktigaste är att processen fortsätter att fungera efter att du har loggat ut och stängt terminalen. Det finns några verktyg som gör att du kan köra två eller flera sessioner samtidigt. I synnerhet Screen
och Tmux
låter dig göra detta.
Screen
eller GNU Screen
är en terminalmultiplexerare som gör att du kan starta en arbetssession och öppna ett valfritt antal fönster (virtuella terminaler) inom den. Processer som körs i detta program kommer att köras även om deras fönster är osynliga eller om programmet har slutat köras.Tmux
är ett mer modernt alternativ till GNU Screen
. Funktionerna i Tmux
är dock inte fundamentalt annorlunda - du kan öppna många fönster inom en och samma session på samma sätt. Uppgifter som körs i Tmux
fortsätter att köras om terminalen stängs.Vi har löst det här problemet, som du kan se är allt elementärt och enkelt.