Brukere som har behov for å kjøre jobber på Dapla Lab som tar mer enn 12 timer, har opplevd at kjøringene avbrytes etter noen timer uten noen åpenbar grunn. Feilen har også oppstått når brukeren har lukket nettleser-fanen eller maskinen til brukeren har gått i dvale, selv om dette ikke i teorien skulle påvirke kjøringen. Årsaken virker å være IDE-ene (Jupyter, VS Code og RStudio) pauser jobbene når de blir pauset.
For å unngå denne oppførselen er terminal-verktøyet tmux installert i Jupyter, VS Code og RStudio. tmux er terminal multiplexer som lar brukeren kjøre og organisere mange terminal-sesjoner i et vindu. En av fordelene med tmux i denne sammenhengen er at den lar brukeren kjøre prosesser selv om terminalen lukkes. Derfor anbefaler vi at brukere som skal kjøre kode over lang tid (>12h) kjører koden i en tmux-session.
Du kan kjøre ditt Python-script ved å kjøre følgende:
Terminal
tmux new -s minsesjon
I koden over startes en session med navn minsesjon. For å aktivere et shell for ditt ssb-project, slik at din Python-installasjon kan kalles på med python
-kommandoen i en terminal, så kan du kjøre kommandoen:
Terminal
poetry shell
Nå kan du kjøre scriptet ditt på følgende måte:
Terminal
python mittskript.py
Deretter kan lukke PC-en, eller nettleser-fanen, og være trygg på at skriptet ditt vil kjøre til det er ferdig. Husk at alle tjenester pauses kl 22 hver kveld, så hvis du ikke ønsker det må du også følge denne oppskriften.
tmux operer med konsepter som session, window og panes. Over startet vi en session med navnet minsesjon. Dette er et komplett arbeidsmiljø hvor man kan ha flere windows og splitte de opp i panes.
En av styrkene til tmux er at man kan kjøre prosesser i bakgrunnen. Derfor er det også viktig å kjenne til at en session kan være attached, at brukeren kan se sesjonen i terminalen, og detached, som betyr at den kan kjøre i bakgrunnen mens brukeren jobber med noe annet. Du kan liste ut dine sesjoner ved å skrive følgende i en terminal:
Terminal
tmux ls
I eksempelet over så kan vi koble til (attach) til vår sesjon ved å skrive:
Terminal
tmux attach -t minsesjon
Du vet at din sesjon er attached ved at du ser en grønn statusbar nederst med navnet til sesjonen, slik som vist Figur 1.
Du kan koble fra en sesjon (detach) ved å skrive CTRL B og deretter d, eller skrive følgende i terminalen:
Terminal
tmux detach -s minsesjon
Prosessen vil deretter kjøre i sesjonen, samtidig som du kan jobbe med andre ting i tjenesten.