We hebben je verteld wat een Linux achtergrondproces is en hoe je het correct start. In dit artikel vertellen we je hoe het in deze modus werkt.
Het uitvoeren van een script in Linux is één taak, je moet ervoor zorgen dat het goed werkt direct nadat je de terminal hebt gesloten. De terminal wordt op de volgende manier afgesloten: je moet op het kruisje klikken dat in de bovenhoek van het scherm staat, dit leidt tot de beëindiging van alle achtergrondprocessen. Er zijn verschillende methoden om ze te redden in het geval dat de verbinding met de interactieve shell verloren gaat
Ten eerste: verwijder de taakwachtrij van de taak door disown te
gebruiken:
disown
Net als in de vorige gevallen, als er meerdere processen tegelijk draaien, moet het nummer van degene ten opzichte waarvan de actie zal worden uitgevoerd, worden opgegeven:
disown %1
Zorg ervoor dat de taak niet in de takenlijst staat. Hoe doe je dit. Gebruik het hulpprogramma jobs -l
. Gebruik de opdracht om de volledige lijst met lopende processen te bekijken:
ps aux
Volgende methode: je slaat de lopende processen op met de opdracht nohup
. Deze opdracht zal na uitvoering op zijn beurt een andere opdracht uitvoeren, alle SIGHUP-signalen
worden genegeerd.
Je kunt het commando zo op de achtergrond uitvoeren:
nohup command &
Zoals je in de bovenstaande afbeelding kunt zien, wordt de uitvoer van het commando naar nohup.out
gestuurd. Het belangrijkste is dat na het uitloggen en het sluiten van de terminal, het proces blijft werken. Er zijn enkele hulpprogramma's waarmee je twee of meer sessies tegelijk kunt uitvoeren. Met name Screen
en Tmux
staan je toe om dit te doen.
Screen
of GNU Screen
is een terminal multiplexer waarmee je één werksessie kunt starten en daarin een willekeurig aantal vensters (virtuele terminals) kunt openen. Processen die in dit programma draaien, zullen zelfs draaien als hun vensters onzichtbaar zijn of als het programma is gestopt met draaien.Tmux
is een moderner alternatief voor GNU Screen
. De mogelijkheden van Tmux
zijn echter niet fundamenteel anders - je kunt op dezelfde manier veel vensters openen in een enkele sessie. Taken die in Tmux
worden uitgevoerd, blijven draaien als de terminal wordt gesloten.We hebben dit probleem opgelost, zoals je kunt zien is alles elementair en eenvoudig.