Taken in de achtergrond uitvoeren
Van MandrivaClub.NL Wiki
Voor het uitvoeren van taken in de achtergrond zijn er meerdere mogelijkheden.
[bewerk] backgrounden
Het simpelste is het zogenaamde 'backgrounden' van een taak, wat gerealiseerd wordt door een &-teken achter de opdracht te plaatsen. Nadeel is alleen, dat je de sessie open moet houden omdat dit proces anders bij het afsluiten van de sessie ook wordt afgesloten.
Als ik een iso wil downloaden, kan ik deze opdracht backgrounden met het volgende commando:
wget://ftp.server.nl/bestand.iso &
Vervolgens is het mogelijk dit proces weer op de voorgrond te plaatsen, met het commando fg. Zijn er meerdere achtergrond processen, is het commando jobs handig voor het tonen van een lijst met beschikbare achtergrond processen. Vervolgens kun je met fg 2 het proces met id 2 op de voorgrond plaatsen.
Andersom is ook mogelijk. Stel een taak duurt toch iets langer dan verwacht, kun je de taak tijdelijk pauzeren door CTRL+Z te drukken. Vervolgens kun je de taak naar de achtergrond sturen met het commando bg.
[bewerk] nohup
Een alternatief is het commando 'nohup', waarmee een taak blijft doorlopen als de sessie wordt afgesloten. De stdout van het commando wordt in het bestand nohup.out geplaatst, waardoor je achteraf nog kunt bekijken of het commando naar behoren is uitgevoerd. Eventueel kun je dit weer combineren met het &-teken, zodat de opdracht ook meteen in de achtergrond wordt uitgevoerd, en je de cli weer kunt gebruiken.
Stel, je wilt een iso downloaden, maar je sessie kunnen sluiten, typ je:
nohup wget://ftp.server.nl/bestand.iso &
[bewerk] screen
Het screen programma biedt nog meer mogelijkheden. Dit commando opent (zoals de naam als zegt) een nieuw scherm, waarin je een taak kunt starten. Je kunt dit scherm vervolgens sluiten, en later weer heropenen.
Om een nieuw scherm te openen, typ je:
screen
Vervolgens kun je CTRL + A,D tikken om het scherm te sluiten. De sessie in dit scherm blijft nu gewoon op de achtergrond doorlopen. Later kun je deze sessie weer hervatten, door het volgende te typen:
screen -r

