2014-02-19 4 views
6

Ich arbeite an kleinen Skript, das interaktiv ist. Ich versuche zu starten tmux sowohl die Angabe des Befehls (so, wenn der Prozess beendet die tmux-Sitzung beendet) und eine Konfigurationsdatei verwenden - aber es scheint nicht, dass dies möglich ist.Starten Sie Tmux mit Befehl & Konfigurationsdatei angeben

tmux new-session -d -s myapp 'python myapp.py' -f 'myapp-tmux.conf' 

Irgendwelche Ideen?

+0

Eine weitere Option sein kann um ein Shell-Skript zu schreiben, das verschiedene Befehle ausführt, die sich momentan in 'myapp-tmux.conf' vor der' tmux new-session ... 'befinden, anstatt' tmux' eine andere '.conf'-Datei zu verwenden. Wie (und ob) Sie dies tun würden, hängt davon ab, was "myapp-tmux.conf" tut. – chepner

Antwort

11

Sie müssen die -f … vor new-session verschieben. Es ist ein Argument für tmux selbst; Der new-session (Unter) -Befehl versteht oder akzeptiert -f nicht.

Auch die Konfigurationsdatei (~/.tmux.conf oder die mit -f angegebene) wird nur beim ersten Start eines Servers verwendet. Wenn Sie andere (möglicherweise getrennte) Sitzungen unter dem Standardserver ausführen, wird der Teil -f … Ihres Befehls nicht verwendet. Suchen Sie nach anderen Sitzungen mit tmux ls.


Vielleicht möchten -L verwenden (oder -S) einen alternativen Server angeben (dh ein, wo Sie können Ihre Sitzung ist immer die einzige sicher):

tmux -L myapp -f myapp-tmux.conf new-session -d -s myapp 'python myapp.py' 

Später anhängen zu dieser Sitzung:

tmux -L myapp attach -t myapp 

(Sie -t myapp nur, dass eine Sitzung hat, wenn der Server weglassen können.)


Wenn Sie Sie vorhandene Server verwenden wollen (so dass Änderungen über die Konfigurationsdatei auf Ihre anderen Sitzungen beeinflussen können), dann möchten Sie vielleicht source stattdessen verwenden:

tmux source myapp-tmux.conf \; new-session -d -s myapp 'python myapp.py'