2014-10-07 89 views
0

大約有10%的時間,當我試圖救我在Emacs文件我得到以下錯誤:錯誤的文件保存:「打開輸出文件:資源暫時不可用」

Opening output file: resource temporarily unavailable, 

我目前在 Ubuntu 12.04上使用Emacs GNU Emacs 24.3.1(x86_64-pc-linux-gnu,GTK +版本3.4.2)。我也已經證實,這個問題是以不同的用戶身份登錄並使用Emacs 23.3.1。

當我進行修復,嘗試保存,然後想知道爲什麼我的修復沒有發生時,這個問題變得非常痛苦......只是爲了後來發現Emacs保存從未成功。 如果我注意到它發生了,我會繼續按Ctrl-x Ctrl-s直到保存實際完成(需要幾次)。

有沒有人有任何想法,爲什麼發生這種情況,以及如何防止它?

更新: (每個請求更多信息)

  • 我目前在Ruby on Rails項目,並在編輯多種文件類型* .RB,* js.coffee已得到錯誤,* js.erb,* html.erb等
  • 我收到錯誤的文件始終是我的機器本地文件。我沒有測試遠程文件。
  • 如果我看*消息緩衝,對於每一個出現錯誤消息時,錯誤與前綴:保存緩衝 - 2

更新2: 問題是多重的Emacs版本由多個遇到用戶。

更新3: 這似乎不是Emacs特定的問題,因爲我現在偶爾嘗試在Sublime文本編輯器中保存文件時出現「無法保存」彈出窗口。

+0

更多信息可能有幫助。文件是本地還是遠程?它關係到哪個文件? – Drew 2014-10-07 23:25:07

+0

哪個文件系統?你的磁盤是否健康? – tripleee 2014-10-14 14:39:30

+0

文件系統類型是ext3,每次啓動時都會檢查它。至少有三位同事報告了這個問題。我們所有的磁盤都顯示健康。 – TwiceB 2014-10-14 15:13:26

回答

1

這可能是emacs(M-x report-emacs-bug)中的一個bug,文件系統存在一些問題(我認爲情況並非如此,因爲很可能您檢查了其他編輯器是否出現問題)或者本地安裝程序中的某些進程與你的文件。

爲了測試如果是後者的話,你可以嘗試EVAL這一點,然後重現該問題:

(defadvice save-buffer (around find-shenanigan activate) 
    (condition-case() 
     ad-do-it 
    (error 
    (shell-command (format "lsof -V %s" (buffer-file-name)) "*debug-issue*")))) 

這樣做是每一個保存操作失敗時,它執行的是需要一個命令打開文件的進程的圖片。如果你看到任何過程,你就知道誰在調查。男士lsof將幫助細節。

注意:這個問題是否也發生在emacs -Q上?

編輯:如果你可以使用sudo沒有密碼(NOPASSWD在/ etc/sudoers文件),將 「lsof的」 與 「命令lsof的」 編輯:我重定向進入了lsof的輸出到一個名爲*debug-issue*緩衝;檢查該緩衝區是否有錯誤。

+0

我假設我通過將「defadvice」代碼添加到我的.emacs文件來完成「eval this」。但是做完這些之後,我現在得到了「(Shell命令失敗,代碼爲1並且沒有輸出)」,而不是資源錯誤。我錯過了什麼嗎? – TwiceB 2014-10-08 16:53:48

+0

我假設你已經安裝了lsof。我編輯了答案,使lsof更加詳細,並重定向錯誤輸出。希望通過這種方式,有些產出可以產生一些線索。 – juanleon 2014-10-09 07:13:22

+0

我真的很感謝你幫忙跟蹤這個問題。我已經安裝了lsof,並且已經將最新的更新包含在我的.emacs文件中....但是,當保存失敗時,我仍然收到相同的新錯誤:「(Shell命令失敗,代碼爲1並且沒有輸出)」。 FWIW,我已經驗證了可以在使用M-進入shell命令模式後,在emacs中手動運行lsof! – TwiceB 2014-10-10 15:50:11

相關問題