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é.

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

120na80.cz: Kam umístit silikony?

Kam umístit silikony?

DigiZone.cz: ČTÚ červenec: rušení trochu vzrostlo

ČTÚ červenec: rušení trochu vzrostlo

Měšec.cz: Se stavebkem k soudu už (většinou) nemusíte

Se stavebkem k soudu už (většinou) nemusíte

Podnikatel.cz: Babiš bude mít přehled o vašich účtech

Babiš bude mít přehled o vašich účtech

Vitalia.cz: 9 potravin, které nesmí chybět v jídelníčku těhotné

9 potravin, které nesmí chybět v jídelníčku těhotné

Měšec.cz: Co když na dovolené přijdete o kartu?

Co když na dovolené přijdete o kartu?

Vitalia.cz: Ženy, které milují příliš, jsou neštěstí

Ženy, které milují příliš, jsou neštěstí

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí karta

Do ostravské MHD bez jízdenky. Stačí karta

Lupa.cz: Elektronika tajemství zbavená. Jak s ní začít?

Elektronika tajemství zbavená. Jak s ní začít?

Lupa.cz: Nechcete datacentrum? Jsou na prodej

Nechcete datacentrum? Jsou na prodej

Vitalia.cz: Vakcína Cervarix je oficiálně i pro chlapce

Vakcína Cervarix je oficiálně i pro chlapce

Vitalia.cz: Za její cukrovkou stojí rodiče

Za její cukrovkou stojí rodiče

Vitalia.cz: Je bílý kokos fakt tak úžasný? Ano, je!

Je bílý kokos fakt tak úžasný? Ano, je!

120na80.cz: Víte, co je svobodná menstruace?

Víte, co je svobodná menstruace?

Měšec.cz: Kurzy platebních karet: vyplatí se platit? (TEST)

Kurzy platebních karet: vyplatí se platit? (TEST)

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

Podnikatel.cz: Kauza z Vinohrad pokračuje. Policie se omlouvá

Kauza z Vinohrad pokračuje. Policie se omlouvá

DigiZone.cz: Hodlá Markíza skončit v DVB-T?

Hodlá Markíza skončit v DVB-T?

Vitalia.cz: „Sjíždět“ porno není bez rizika

„Sjíždět“ porno není bez rizika