我正在研究互动的小脚本.我正在尝试启动tmux指定命令(以便在进程退出tmux会话时退出)和使用配置文件 – 但似乎不可能.
tmux new-session -d -s myapp 'python myapp.py' -f 'myapp-tmux.conf'
有任何想法吗?
解决方法
您需要将-f …移动到新会话之前.这是tmux本身的论据; new-session(sub)命令不理解或接受-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'