Vim Text Editor Basics - How to Use Vim on Linux / Mac / Unix (Beginners Guide on Ubuntu 20.04)
Inhoudsopgave:
- Voer een Linux-commando op de achtergrond uit
- Verplaats een voorgrondproces naar achtergrond
- Houd achtergrondprocessen actief nadat een shell is afgesloten
- alternatieven
- Scherm
- tmux
- Conclusie
Wanneer u een opdracht in de terminal uitvoert, moet u meestal wachten tot de opdracht is voltooid voordat u een andere kunt invoeren. Dit wordt het uitvoeren van de opdracht in het voorgrond- of voorgrondproces genoemd. Wanneer een proces op de voorgrond wordt uitgevoerd, bezet het uw shell en kunt u ermee communiceren via de invoerapparaten.
Wat als de opdracht lang duurt om te voltooien en u ondertussen andere opdrachten wilt uitvoeren? U hebt verschillende opties tot uw beschikking. De meest voor de hand liggende en eenvoudigste optie is om een nieuwe shell-sessie te starten en de opdracht erin uit te voeren. Een andere optie is om de opdracht op de achtergrond uit te voeren.
Een achtergrondproces is een proces / opdracht die wordt gestart vanaf een terminal en op de achtergrond wordt uitgevoerd, zonder interactie van de gebruiker., we zullen praten over de achtergrondprocessen is Linux. We laten je zien hoe je een commando op de achtergrond start en hoe je het proces kunt laten draaien nadat de shell-sessie is afgesloten.
Voer een Linux-commando op de achtergrond uit
Om een opdracht op de achtergrond uit te voeren, voegt u het ampersand-symbool (
&
) toe aan het einde van de opdracht:
command &
De shell-taak-ID (tussen haakjes) en proces-ID worden afgedrukt op de terminal:
25177
U kunt meerdere processen tegelijkertijd op de achtergrond uitvoeren.
Het achtergrondproces blijft berichten schrijven naar de terminal van waaruit u de opdracht hebt aangeroepen. Gebruik de volgende syntaxis om de
stdout
en
stderr
berichten te onderdrukken:
command > /dev/null 2>&1 &
>/dev/null 2>&1
betekent
stdout
omleiden naar
/dev/null
en
stderr
naar
stdout
.
Gebruik het hulpprogramma
jobs
om de status van alle gestopt en achtergrondtaken in de huidige shell-sessie weer te geven:
jobs -l
De uitvoer omvat het taaknummer, proces-ID, taakstatus en de opdracht waarmee de taak is gestart:
+ 25177 Running ping google.com &
Gebruik de opdracht
fg
om een achtergrondproces naar de voorgrond te brengen:
fg
fg %1
Om het achtergrondproces te beëindigen, gebruikt u de opdracht
kill
gevolgd door de proces-ID:
Verplaats een voorgrondproces naar achtergrond
Een lopend voorgrondproces op de achtergrond verplaatsen:
- Stop het proces door
Ctrl+Z
typen. Verplaats het gestopte proces naar de achtergrond doorbg
typen.
Houd achtergrondprocessen actief nadat een shell is afgesloten
Als je verbinding wegvalt of als je uitlogt bij de shell-sessie, worden de achtergrondprocessen beëindigd. Er zijn verschillende manieren om het proces actief te houden nadat de interactieve shell-sessie is beëindigd.
Een manier is om de taak uit de taakcontrole van de shell te verwijderen met behulp van de ingebouwde shell ingebouwd:
disown
disown %1
Bevestig dat de taak uit de tabel met actieve taken wordt verwijderd met de
jobs -l
. Gebruik de opdracht
ps aux
om alle actieve processen weer te geven, inclusief de verstoten.
Een andere manier om een proces actief te houden na de shell-uitgang is door
nohup
te gebruiken.
De opdracht
nohup
voert een ander programma uit dat is opgegeven als argument en negeert alle
SIGHUP
(hangup) signalen.
SIGHUP
is een signaal dat naar een proces wordt verzonden wanneer de controlerende terminal is gesloten.
Typ het volgende om een opdracht op de achtergrond uit te voeren met de opdracht
nohup
:
nohup command &
De opdrachtuitvoer wordt doorgestuurd naar het bestand
nohup.out
.
nohup: ignoring input and appending output to 'nohup.out'
alternatieven
Er zijn een aantal programma's waarmee u meerdere interactieve sessies tegelijkertijd kunt houden.
Scherm
Screen of GNU Screen is een terminal-multiplexerprogramma waarmee u een schermsessie kunt starten en een willekeurig aantal vensters (virtuele terminals) binnen die sessie kunt openen. Processen die in Scherm worden uitgevoerd, blijven actief als hun venster niet zichtbaar is, zelfs als u de verbinding verliest.
tmux
Tmux is een modern alternatief voor GNU-scherm. Met Tmux kunt u ook een sessie maken en meerdere vensters binnen die sessie openen. Tmux-sessies zijn persistent, wat betekent dat programma's die in Tmux worden uitgevoerd, blijven draaien, zelfs als u de terminal sluit.
Conclusie
Als u een opdracht op de achtergrond wilt uitvoeren, neemt u
&
op aan het einde van de opdracht.
Wanneer u een opdracht op de achtergrond uitvoert, hoeft u niet te wachten totdat deze is voltooid voordat u een andere kunt uitvoeren.
nohup fg bg jobs disown terminalStel Bing dagelijkse achtergrond in als uw Windows Phone-achtergrond met Bing2Wall-app
De bing2wall WP7-app maakt het gemakkelijk voor uw telefoon om te downloaden en bespaar de huidige Bing-achtergrond. Hiermee kunt u de beelden van de laatste 6 dagen opslaan.
Hoe meerdere instanties van kmplayer uit te voeren
Leer hoe u meerdere instanties van KMPlayer uitvoert.
Hoe Linux gebaseerde programma's op Chromebooks uit te voeren
Ben je dol op de oude op Linux gebaseerde programma's, zelfs nadat je naar een Chromebook bent verhuisd? Geen probleem, met het gebruik van rollApp kunt u het beste van twee werelden krijgen. Lees verder.