【问题标题】:LSOpenURLsWithRole() errors when in a tmux session在 tmux 会话中出现 LSOpenURLsWithRole() 错误
【发布时间】:2013-11-14 02:35:12
【问题描述】:

LSOpenURLsWithRole() failed with error -600 for the URL http://localhost:9000/.

这是我在 tmux 会话中尝试启动 SimpleHTTPServer 时遇到的错误。我是一名前端 Web 开发人员,我大部分时间都在使用SimpleHTTPServer,而不是Apache。问题是它在open 命令中出错,因为我有直接从终端打开文件和目录的习惯(open dirname/open .),当我在tmux 中使用它时,它给出了我同样的错误。 我想提一下,我使用的是 Macbook Air,运行 OSX 10.9 Mavericks。

这是我在终端中用来启动服务器的函数代码:

# Start an HTTP server from a directory, optionally specifying the port
function server() {
    local port="${1:-8000}"
    open "http://localhost:${port}/"
    # Set the default Content-Type to `text/plain` instead of `application/octet-stream`
    # And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files)
    python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port" 
}

编辑

该问题不再出现,因此我有 3 种可能的解决方案:

极不可能:

  • 从 Python3 更改为 Python 2.7.5(OS X 默认)

最有可能:

  • Apple 发布了修复此问题的 Mavericks 更新
  • 安装命令行工具以使用 Homebrew 构建和安装最新版本的 VIM

【问题讨论】:

  • 您的tmux 会话是从 ssh 连接启动的,还是至少不是从 Mac UI 启动的?这会导致open 无法连接到可能触发错误的窗口服务器。
  • @robertklep 不,不是。这是我在我的机器上启动的本地会话。那天晚上,我尝试在重新启动等之后以不同的方式启动多个会话,但似乎没有任何效果。
  • 我在 Yosemite 和带有 tmux 的 nodeJs 上看到了这个

标签: python macos terminal tmux simplehttpserver


【解决方案1】:

不确定这是否对你来说是同样的情况,因为你提到你重启了几次......

但是对我来说,我注意到在 iterm 失败后我有 2 个 tmux 会话,我已经忘记了。他们正在运行由 grunt 启动的一堆服务,所以我假设其中一个服务在尝试重新启动时发生冲突。杀死它们使该错误不再发生,并且我能够在 tmux 中运行我的节点应用程序。

【讨论】:

  • 问题一度消失。我看到你也在 Yosemite w/NodeJS+tmux 上报告它,但我想知道你是使用 python 中的 SimpleHTTPServer,还是使用 NodeJS 网络服务器,如 http 模块或 expressJS 生成的。让我知道你的情况,也许我可以在我的机器上测试。
  • 不使用 python,使用 expressJs 实际上我现在使用 Yosemite 得到了很多,它倾向于在随机时刻关闭我的所有应用程序。然后我必须附加到 tmux 会话或终止所有会话,问题就消失了。
  • 这很奇怪,也许你可以尝试安装Onyx for Yosemite——一个我经常使用的清理工具,运行它的脚本,修复磁盘/目录权限,重置其他主目录权限和其他东西重新启动。让我知道进展如何。
【解决方案2】:

就像@Cosmin 说的,检查是否有另一个tmux 在运行,杀死所有的tmux。

然后打开一个新的tmux,它会像以前一样工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多