2013-11-03 67 views
5

LSOpenURLsWithRole() failed with error -600 for the URL http://localhost:9000/.LSOpenURLsWithRole()錯誤時在TMUX會議

這是我的錯誤,當我嘗試推出我SimpleHTTPServer而在tmux會話。我是一名前端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默認)

最有可能的:

  • 蘋果發佈了一個更新,以小牛修復此問題
  • 爲了使用自制軟件來構建&安裝最新版本的VIM的
安裝的命令行工具
+0

您的'tmux'會話是否從ssh連接開始,或者至少不是從Mac用戶界面開始的?這導致'open'無法連接到可能觸發錯誤的窗口服務器。 – robertklep

+0

@robertklep不,它不是。這是我在本機上開始的一個本地會話。我嘗試了那個晚上,以不同的方式,在重新啓動後等開始多個會話,但似乎沒有任何工作。 –

+0

我在優勝美地和nodeJs上用tmux – Cosmin

回答

2

不知道這是否對你來說是相同的情況,因爲你提到你重新啓動了幾次...

但是對於我來說,我注意到在我忘記了iterm故障後,我有2個tmux會話流浪。他們正在運行一堆由grunt開始的服務,所以我假設其中一個服務在嘗試重新啓動時發生衝突。殺死他們使得這個錯誤不再發生,我能夠在tmux中運行我的節點應用程序。

+0

看到這個問題在一點上消失了。我發現你也在Yosemite w/NodeJS + tmux上報告它,但是我想知道你是使用Python中的SimpleHTTPServer還是使用NodeJS網絡服務器,比如http模塊或者expressJS生成的。讓我知道你的情況,也許我可以在我的機器上測試。 –

+0

不使用python,使用expressJs 我現在實際上已經使用Yosemite獲得了很多,它傾向於在隨機時刻關閉所有應用程序。然後,我必須附加到tmux會話或終止所有會話,問題就會消失。 – Cosmin

+0

這很奇怪,也許你可以嘗試安裝[Onyx for Yosemite](http://www.macupdate.com/app/mac/11582/onyx) - 我經常使用的清理工具,並運行它的腳本,修復磁盤/目錄權限,重置其他家庭目錄權限和其他東西,並重新啓動。讓我知道它是如何去的。 –

0

就像@Cosmin說的那樣,檢查是否有另一個tmux在運行,殺死所有的tmux。

然後打開一個新的tmux,它會像以前一樣工作。