如果我跑
tmux kill-server ; tmux new -d -s test
有时它会起作用,但有时我会得到lost server
或no server running on /tmp/tmux-1000/default
。
如果我做
tmux kill-server ; sleep 0.1; tmux new -d -s test
那么它总是有效的。但我怀疑它可能会在负载很重的系统上失败。
期间发生了什么sleep 0.1
?有没有办法明确等待它?
答案1
内联执行命令并不总是能够无缝地工作,原因是:
- 如果您运行第一个命令,该命令需要系统时间来执行。
- 第二个命令依赖于它,并且如果需要相同/部分资源。
内联命令之间有延迟是件好事。系统有时会像我们想象的那样响应:)
答案2
tmux kill-server ; tmux new -d -s test
和
tmux kill-server && tmux new -d -s test
您想确保tmux kill-server
成功才能启动新服务器。
看来tmux kill-server
,我也遇到过同样的情况。看起来它是作为守护进程运行的,当它返回时,并不意味着服务器被杀死了。