OK, jsem v tom nový. Nainstaloval jsem tmux ke spuštění několikadenní experiment. Po zadání tmux new -s name se mi zobrazilo nové okno se zeleným bannerem dole. Zkompilovám a spustím java program. Teď nevím, jak okno opustit (zatímco ponechte jej spuštěný). Kurzor bash (nebo cokoli jiného) nereaguje, protože program java stále běží. Mým řešením je zatím úplně ukončit program Terminál a znovu jej otevřít. Nějaké nápady, jak ukončit okno tmux bez ukončení celý program Terminálu?
Komentáře
Odpověď
Odpojit se od aktuálně připojené relace
Relace
Ctrl + b d nebo Ctrl + b :detach
Obrazovka
Ctrl + a Ctrl + d nebo Ctrl + a :detach
Komentáře
- Poté musíte znovu spustit
tmux attacha po opětovném připojení vstoupit do otevřené relace. - I ' vždy jsme udělali
ENTER ~ .Zdá se to hezčí. - Existuje prostor mezi
~a.a také vrátípermission denied: /home/folder@ThomasEding - @alper Ve výrazu I nejsou vůbec žádné mezery napsáno výše.
Odpověď
Domnívám se, že předchozí odpovědi jsou neúplné. :detach udělá to, že vypne výřezy, které zobrazují aktivitu tmux. Samotný tmux však stále běží na pozadí, jak vidíte spuštěním ps:
myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev
Ve skutečnosti, i když ukončíte terminál a znovu ho spustíte, všechny procesy tmux STILL běží na pozadí.
Chcete-li samotný proces tmux zabít, musíte udělat:
tmux kill-session [-t session_name]
nebo jednoduše:
kill -9 1799
Komentáře
- Imho, dávalo by větší smysl komentovat některé odpovědi ' s nedostatky pod touto konkrétní odpovědí a nechte svůj příspěvek jako úplnou a obsažnou odpověď, aniž byste museli čtenáře zjistit, které odpovědi jsou předchozí, a poté je analyzovat.
- Myslím, že OP konkrétně chtěl, aby proces na pozadí (v jeho případě java) pokračoval v běhu , takže jeho zabití by bylo kontraproduktivní. Zajímavější by bylo opětovné připojení k odpojenému procesu pomocí
tmux attach-session. - Použití
kill -9je absolutně Špatný způsob ™, jak toho dosáhnout. To odešleSIGKILLsignál, který neumožní procesu vyčistit sám sebe, což může způsobit vážné problémy s visícími zdroji.SIGKILLby měl být použit pouze v případě, že proces již byl zdvořile požádán o vyčištění a vypnutí prostřednictvímSIGTERMnebo podobného, a z jakéhokoli důvodu odmítá tak učinit; i přesto byste se měli vyhnout odesíláníSIGKILL, pokud mohou. Tato odpověď vyvozuje (nesprávně), že by to měla být jedna z prvních věcí, které by člověk měl udělat pro vypnutí procesu na pozadí, jako je tmux server.
man tmux | less -p detachCtrl+b szobrazit seznam relací, přejít na tu, kterou chcete zabít, a zadat:kill-session.