Přehození běžícího procesu pod tmux/screen

19. 11. 2013 9:47 (aktualizováno) | Petr Krčmář

Běží vám proces na popředí a vy si nadáváte, že jste si ho neotevřeli v multiplexeru. Všechno se dá napravit. Tohle naštěstí snadno.

Nevím jak vy, ale já si život bez terminálového multiplexeru neumím představit. Na Rootu jsem postupně psal o třech nejznámějších:

Já jsem si vybral Tmux, mám přenastavené klávesy jako ve screenu (popsáno v článku) a jsem spokojený. Používám ho jak na SSH, tak i lokálně, protože mám běžně otevřených několik různých terminálů – určitě to znáte.

Pokud některý z multiplexerů používáte, určitě také znáte situaci, kdy rozjedete nějakou úlohu a až dodatečně si uvědomíte, že by se vám pod ní hodil třeba ten Tmux. Ovšem když už to běží, jak to tam dostat dodatečně? Naštěstí na to existuje odpověď: nainstalujte si balíček  reptyr.

Ten umí přehodit už běžící proces do jiného terminálu. Funguje tak, že se k procesu připojí pomocí ptrace a změní mu nastavení výstupů a řídící terminál. Takže stačí dodatečně pustit s multiplexer a proces si do něj „nasát“. Postup podrobně:

1) spustíme si nějaký proces, třeba na zkoušku MC
2) pomocí ctrl+z ho uspíme na pozadí
3) spustíme multiplexer: screen nebo  tmux

4) zjistíme si PID procesu: ps ax|grep mc

5) přehodíme si proces k sobě: reptyr 123456

Pokud přehazujeme skutečně mezi dvěma terminály (nebo okny), můžeme ještě před přehozením nechat proces běžet na pozadí pomocí bg, případně ho kvůli bezpečnosti můžeme vydědit pomocí disown. Pokud to neuděláme, bude se na starém terminálu (pokud to tedy byl jiný než ten současný) tvářit jako stále upozaděný a je možné ho vyvolat pomocí fg  zpět.

Dodatek: pokud tohle nechcete řešit a chcete mít Tmux spuštěný v každém novém terminálu, stačí si do ~/.bashrc přidat řádek:

test -z "$TMUX" && (tmux attach || tmux new-session)

Ten ověří, zda už Tmux neběží a pokud ne, připojí už existující sezení nebo otevře nové.

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

Lupa.cz: Co všechno je Facebook schopný cenzurovat?

Co všechno je Facebook schopný cenzurovat?

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

DigiZone.cz: Další programatické formáty

Další programatické formáty

Vitalia.cz: 5 důvodů, proč jet na výlov rybníka

5 důvodů, proč jet na výlov rybníka

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

Podnikatel.cz: Nemá dluhy? Zjistíte to na poště

Nemá dluhy? Zjistíte to na poště

Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Lupa.cz: Adblock Plus začal prodávat reklamy

Adblock Plus začal prodávat reklamy

Vitalia.cz: Tesco nabízí desítky tun jídla zdarma

Tesco nabízí desítky tun jídla zdarma

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Měšec.cz: „Ukradli“ jsme peníze z bezkontaktních karet

„Ukradli“ jsme peníze z bezkontaktních karet

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?