Alle har vært der: du ønsker å kjøre et terminalprogram og holde det i gang. Problemet er at dette programmet er gammelt eller ikke inneholder en funksjon som gjør det mulig å løpe som en demon i bakgrunnen. Heldigvis finnes det flere måter å tvinge programmer til å arbeide i bakgrunnen uansett.

Bash kan gjøre alt på egenhånd, og ekstraprogrammer trenger ikke installeres. Denne artikkelen vil gå over flere måter som du kan presse terminalprogrammer i bakgrunnen og holde dem der. Hver metode som er oppført, er bra for sitt eget spesialbrukstilfelle.

Slutt en kommando med &

Hvis du vil skyve en kommando inn i bakgrunnen, bruker & i slutten en enkel måte å gjøre det på. Det kommer med en fangst, skjønt. Bruke & fjerner ikke kommandoen vekk fra deg; det skyver det bare i bakgrunnen, slik at du kan fortsette å bruke en terminal.

 kommandoen & 

Når terminalsesjonen er stengt, avslutter kommandoen. Bruk & er bra hvis du trenger å skyve noe av for litt, men forvent ikke at det skal fortsette for alltid.

& Etter en kommando, så avslå det

Kjører en kommando med bare & skyver den av til baksiden og holder den i gang så lenge terminalvinduet er åpent. Hvis du imidlertid ønsker å holde denne kommandoen kjørt i konstant, selv når terminalen din slutter, kan du bruke disown kommandoen.

For å bruke denne metoden, begynner du først å legge til en & .

 kommandoen & 

Som nevnt ovenfor bruker & pusher denne kommandoen i bakgrunnen, men fjerner den ikke fra brukeren din. Du kan bekrefte dette ved å skrive jobs inn i terminalen. Det vil vise kommandoen som kjører i bakgrunnen.

Bare skriv disown i skallet, og det vil bare gjøre det (og du kan nok en gang bekrefte dette med kommandoen jobs ).

& Etter en kommando med / dev / null

Legge til & etter en kommando vil skyve en kommando inn i bakgrunnen, men som følge av dette vil bakgrunnskommandoen fortsette å skrive ut meldinger til terminalen mens du bruker den. Hvis du ønsker å forhindre dette, bør du tenke på omdirigering av kommandoen til /dev/null .

 kommando &> / dev / null & 

Dette forhindrer ikke at kommandoen lukkes når terminalen lukkes. Men som nevnt ovenfor, er det mulig å bruke disown å forkaste kjører kommandoen bort fra brukeren.

Nohup, med & og / dev / null

I motsetning til tidligere kommandoer kan du bruke nohup til å kjøre en kommando i bakgrunnen og holde den i gang. Hvordan? Nohup bypasser HUP signalet (signal henger opp), noe som gjør det mulig å kjøre kommandoer i bakgrunnen selv når terminalen er slått av. Kombiner denne kommandoen med omdirigering til /dev/null (for å hindre nohup fra å lage en nohup.out-fil), og alt går til bakgrunnen med en kommando.

 nohup kommando &> / dev / null & 

Konklusjon

De fleste terminalprogrammer på Linux har i dag funksjoner som er bygd inn slik at de kan løpe i bakgrunnen med liten innsats. Sammen med det, kan moderne init systemer (som systemd) tillate brukere å starte programmer som tjenester ved oppstart eller når.

Likevel mangler noen programmer på Linux muligheten til å kjøre som en demon eller integrere med moderne init-systemer. Dette er en ekte uleilighet, men er forståelig, da ikke alle utviklere har ferdigheter eller tid til å legge til nye funksjoner.

Heldigvis, kommandoer som nohup eller disown er fortsatt en realitet og kan likevel lukke gapet i å flytte programmer som dette til bakgrunnen. De er ikke perfekte eller fancy, men de får jobben når det trengs.

Hvordan beveger du løpende terminalprogrammer inn i bakgrunnen? Fortell oss nedenfor!

Bilde Kreditt: En terminal-fire skjermer