Flyt en process til en screen eller tmux

Hvis man er så heldig at få startet en process op på en unix maskine som tager lang tid og man ikke har tid til at vente. Så vil man ofte ønske at man fik startet den i en screen eller tmux.

Man kan heldivis med et par simple programme gøre dette.
Alt man skal bruge er :

  • screen eller tmux alt efter hvad man bedst kan lide,
  • disown (som er indbygget i bash og zsh),
  • pgrep (som feks ligger i procps pakken i debian)
    og
  • reptyr.

Når du har disse ting installeret (f.eks. apt-get install screen tmux procps reptyr )
Så kan du tage det i brug.

  1. Start med at suspendere den process  (lad os sige ’emacs test.txt’) du har gang i. Det gør du ved at trykke CTRL+z
  2. Sæt den til at køre i baggrunden med bg
  3. Så fjerner vi processen fra den nuværrende shell så den kan lukkes senere uden at processen lukkes. Dette gøres ved at skrive disown emacs
  4. Nu kan du starte en screen / tmux
  5. I den aktive screen eller tmux process hiver du nu processen ind igen ved at skrive reptyr $(pgrep emacs)

Herefter er det muligt at lukke shellen ned og attache screen eller tmux igen senere når man igen har tid til at se indtil processen.