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 attach
a 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 -9
je absolutně Špatný způsob ™, jak toho dosáhnout. To odešleSIGKILL
signál, který neumožní procesu vyčistit sám sebe, což může způsobit vážné problémy s visícími zdroji.SIGKILL
by 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ímSIGTERM
nebo 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 detach
Ctrl+b s
zobrazit seznam relací, přejít na tu, kterou chcete zabít, a zadat:kill-session
.