Sådan Kører Du Bash-Scripts Efter Lukning af Terminal | Nohup, Screen, Tmux & Disown Metoder

Er det muligt at starte en kommando eller et Bash-script, afslutte terminalen og ikke afbryde kommandoen?

Det er muligt at starte en kommando eller et Bash-script, afslutte terminalen og sikre, at kommandoen fortsætter med at køre ved at bruge metoder som `nohup`, `screen`, `tmux` eller `disown`.

Er det muligt at starte en kommando eller et Bash-script, afslutte terminalen og ikke afbryde kommandoen?

Ja, det er muligt at starte en kommando eller et Bash-script, afslutte terminalen og sikre, at kommandoen fortsætter med at køre. Her er nogle metoder til at opnå dette:

1. Brug af nohup

nohup (no hang up) er en kommando, der kan bruges til at køre en anden kommando, så den fortsætter med at køre, selv efter at terminalen er lukket.

nohup ./dit-script.sh &
  • nohup: Forhindrer, at kommandoen afbrydes, når terminalen lukkes.
  • &: Kører kommandoen i baggrunden.

2. Brug af screen

screen er et terminal multiplexer, der giver dig mulighed for at starte en session og derefter afbryde forbindelsen fra den, mens kommandoen fortsætter med at køre.

screen -S session-navn
./dit-script.sh
Ctrl+A, D
  • screen -S session-navn: Starter en ny screen-session med et givet navn.
  • Ctrl+A, D: Afbryder forbindelsen fra screen-sessionen, mens kommandoen fortsætter med at køre.

3. Brug af tmux

tmux er en anden terminal multiplexer, der fungerer på samme måde som screen.

tmux new -s session-navn
./dit-script.sh
Ctrl+B, D
  • tmux new -s session-navn: Starter en ny tmux-session med et givet navn.
  • Ctrl+B, D: Afbryder forbindelsen fra tmux-sessionen, mens kommandoen fortsætter med at køre.

4. Brug af & disown

Du kan også starte en kommando i baggrunden og derefter bruge disown til at fjerne den fra shellens jobtabeller, så den ikke afbrydes, når terminalen lukkes.

./dit-script.sh &
disown
  • &: Kører kommandoen i baggrunden.
  • disown: Fjerner kommandoen fra shellens jobtabeller.

Ved at bruge en af disse metoder kan du sikre, at dine kommandoer eller scripts fortsætter med at køre, selv efter at du har lukket terminalen.