我正在处理交互式的小脚本。我尝试启动tmux既指定命令(以便在进程退出tmux会话时退出)和使用配置文件 - 但它似乎不可能出现。
tmux new-session -d -s myapp 'python myapp.py' -f 'myapp-tmux.conf'
有什么想法吗?
答案 0 :(得分:15)
您需要将-f …
移至new-session
之前。它是 tmux 本身的一个参数; new-session
(子)命令无法理解或接受-f
。
此外,配置文件(~/.tmux.conf
或使用-f
指定的文件)仅在最初启动服务器时使用。如果在默认服务器下运行其他(可能是分离的)会话,则命令的-f …
部分将不使用。使用tmux ls
检查其他会话。
您可能希望使用-L
(或-S
)来指定备用服务器(即可以确保您的会话始终是唯一的服务器):
tmux -L myapp -f myapp-tmux.conf new-session -d -s myapp 'python myapp.py'
稍后,要附加到该会话:
tmux -L myapp attach -t myapp
(如果服务器只有一个会话,您可以不使用-t myapp
。)
如果您确实想要使用现有服务器(以便通过配置文件进行的更改会影响其他会话),那么您可能希望改为使用source
:
tmux source myapp-tmux.conf \; new-session -d -s myapp 'python myapp.py'