Writing 2D Games in C using SDL by Thomas Lively
Indholdsfortegnelse:
- Kør en Linux-kommando i baggrunden
- Flyt en forgrundsproces til baggrunden
- Hold baggrundsprocesser kørt efter en shell-udgang
- Alternativer
- skærm
- tmux
- Konklusion
Når du kører en kommando i terminalen, skal du typisk vente til kommandoen er afsluttet, før du kan indtaste en anden. Dette kaldes at køre kommandoen i forgrunds- eller forgrundsprocessen. Når en proces kører i forgrunden, optager den din skal, og du kan interagere med den ved hjælp af inputenhederne.
Hvad hvis det tager lang tid at færdiggøre kommandoen, og du vil køre andre kommandoer i mellemtiden? Du har flere muligheder til din rådighed. Den mest indlysende og ligefremme mulighed er at starte en ny shell-session og køre kommandoen i den. En anden mulighed er at køre kommandoen i baggrunden.
En baggrundsproces er en proces / kommando, der startes fra en terminal og kører i baggrunden uden interaktion fra brugeren., vil vi tale om baggrundsprocesserne er Linux. Vi viser dig, hvordan du starter en kommando i baggrunden, og hvordan du fortsætter processen, når shell-sessionen er lukket.
Kør en Linux-kommando i baggrunden
For at køre en kommando i baggrunden skal du tilføje ampersand-symbolet (
&
) i slutningen af kommandoen:
command &
Shell-job-ID (omgivet af parenteser) og proces-id udskrives på terminalen:
25177
Du kan have flere processer, der kører i baggrunden på samme tid.
Baggrundsprocessen fortsætter med at skrive beskeder til terminalen, hvorfra du påkaldte kommandoen. For at undertrykke
stdout
og
stderr
meddelelser skal du bruge følgende syntaks:
command > /dev/null 2>&1 &
>/dev/null 2>&1
betyder omdirigering af
stdout
til
/dev/null
og
stderr
til
stdout
.
Brug jobværktøjet til at vise status for alle stoppede og baggrundsjob i den aktuelle shell-session:
jobs -l
Outputet inkluderer jobnummeret, proces-id, jobtilstand og den kommando, der startede jobbet:
+ 25177 Running ping google.com &
For at bringe en baggrundsproces i forgrunden skal du bruge kommandoen
fg
:
fg
fg %1
For at afslutte baggrundsprocessen skal du bruge
kill
kommandoen efterfulgt af proces-ID:
Flyt en forgrundsproces til baggrunden
Sådan flyttes en kørende forgrundsproces i baggrunden:
- Stop processen ved at skrive
Ctrl+Z
Flyt den stoppede proces til baggrunden ved at skrivebg
.
Hold baggrundsprocesser kørt efter en shell-udgang
Hvis din forbindelse falder, eller du logger ud af shell-sessionen, afsluttes baggrundsprocesserne. Der er flere måder at holde processen i gang efter den interaktive shell-session er afsluttet.
En måde er at fjerne jobbet fra skallets jobkontrol ved hjælp af det
disown
shell-indbyggede:
disown
disown %1
Bekræft, at jobbet fjernes fra tabellen over aktive job ved hjælp af kommandoen
jobs -l
. Brug
ps aux
kommandoen til at liste alle kørende processer, inklusive den ikke-kendte.
En anden måde at holde en proces i gang efter shell-udgangen er at bruge
nohup
.
nohup
kommandoen udfører et andet program, der er specificeret som dets argument, og ignorerer alle
SIGHUP
(hangup) signaler.
SIGHUP
er et signal, der sendes til en proces, når dens kontrolterminal er lukket.
Hvis du vil køre en kommando i baggrunden ved hjælp af kommandoen
nohup
, skal du indtaste:
nohup command &
Kommandoudgangen omdirigeres til filen
nohup.out
.
nohup: ignoring input and appending output to 'nohup.out'
Alternativer
Der er et antal programmer, der giver dig mulighed for at have flere interaktive sessioner på samme tid.
skærm
Skærm- eller GNU-skærm er et terminalmultiplexerprogram, der giver dig mulighed for at starte en skærmsession og åbne et vilkårligt antal windows (virtuelle terminaler) inde i denne session. Processer, der kører i skærmen, fortsætter med at køre, når deres vindue ikke er synligt, selvom du bliver afbrudt.
tmux
Tmux er et moderne alternativ til GNU-skærm. Med Tmux kan du også oprette en session og åbne flere vinduer inde i denne session. Tmux-sessioner er vedvarende, hvilket betyder, at programmer, der kører i Tmux, fortsætter med at køre, selvom du lukker terminalen.
Konklusion
Hvis du vil køre en kommando i baggrunden, skal du inkludere
&
i slutningen af kommandoen.
Når du kører en kommando i baggrunden, behøver du ikke vente til den er færdig, før du kan udføre en anden.
nohup fg bg job nægter terminalSådan køres diskfejl Kontroller i Windows 10/8

Microsoft har omdesignet chkdsk-værktøj Lær hvordan du tjekker harddisken for fejl, dårlige sektorer, filsystemfejl og reparation og reparation i Windows 10/8.
Sådan oprettes og køres en vellykket Google AdSense-konto

Google har udgivet en tjekliste om, hvordan man skal etablere og køre en en succesfuld AdSense-konto.
Sådan køres Linux-baserede programmer på chromebooks

Elsker du de gamle Linux-baserede programmer, selv efter at du er flyttet til en Chromebook? Ingen sved, med brug af rollApp kan du få det bedste fra begge verdener. Læs videre.