OK Ik ben nieuw. Ik heb tmux
geïnstalleerd om te draaien een experiment van meerdere dagen. Na het typen van tmux new -s name
kreeg ik een nieuw venster met een groene banner onderaan. Ik compileer en voer het Java-programma uit. Nu weet ik niet hoe ik het venster moet verlaten (terwijl laat het draaien). De bash (of wat dan ook) cursor reageert niet omdat het Java-programma nog steeds actief is. Mijn oplossing tot dusver is om het Terminal-programma volledig af te sluiten en het opnieuw te openen. Enige ideeën over hoe het tmux-venster te sluiten zonder af te sluiten het hele Terminal-programma?
Reacties
Antwoord
Loskoppelen van momenteel gekoppelde sessie
Sessie
Ctrl + b d of Ctrl + b :detach
Scherm
Ctrl + a Ctrl + d of Ctrl + a :detach
Reacties
- Je moet dan
tmux attach
uitvoeren om de open sessie weer binnen te gaan nadat je opnieuw verbinding hebt gemaakt. - I ' altijd gedaan
ENTER ~ .
Dit lijkt leuker. - Is er ruimte tussen
~
en.
en het retourneert ookpermission denied: /home/folder
@ThomasEding - @alper Helemaal geen spaties in de uitdrukking I hierboven getypt.
Antwoord
De vorige antwoorden zijn onvolledig, denk ik. Wat :detach
doet, is het afsluiten van de viewports die tmux-activiteit weergeven. Echter, tmux zelf draait nog steeds op de achtergrond, zoals je kunt zien door ps
:
myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev
In feite, zelfs als je terminal afsluit en het opnieuw opstart, draaien alle tmux-processen NOG STEEDS op de achtergrond.
Om het tmux-proces zelf daadwerkelijk te beëindigen, moet je doen:
tmux kill-session [-t session_name]
of simpelweg:
kill -9 1799
Reacties
- Imho, het zou logischer zijn om commentaar te geven op een of ander antwoord ' s tekortkomingen onder dat specifieke antwoord en laat je bericht achter als een compleet en ingesloten antwoord zonder dat de lezers moeten uitzoeken welke antwoorden eerder zijn en ze vervolgens analyseren.
- Ik denk dat OP specifiek wilde dat het achtergrondproces (in zijn geval java) bleef draaien , dus het doden ervan zou contraproductief zijn. Interessanter zou zijn om later opnieuw aan het ontkoppelde proces te koppelen met
tmux attach-session
. - Het gebruik van
kill -9
is absoluut de Verkeerde manier ™ om dit te doen. Dit stuurt eenSIGKILL
-signaal waardoor het proces zichzelf niet kan opschonen, wat ernstige problemen kan veroorzaken met hangende bronnen.SIGKILL
mag alleen worden gebruikt als een proces al beleefd is gevraagd om op te schonen en af te sluiten viaSIGTERM
of iets dergelijks en, om welke reden dan ook, weigert dit te doen; zelfs dan moet men nog steeds vermijden omSIGKILL
te verzenden als ze kunnen. Dit antwoord leidt (onjuist) af dat het een van de eerste dingen zou moeten zijn die een persoon zou moeten doen om een achtergrondproces zoals een tmux-server af te sluiten.
man tmux | less -p detach
Ctrl+b s
doen om sessies weer te geven, navigeren naar degene die je wilt doden en:kill-session
typen.