Linux

ssh 註銷後,GNU 螢幕分離無法寫入文件

  • July 6, 2015

我正在通過 ssh 進入使用 AFS 主目錄的 Linux 集群。我正在嘗試使用 GNU 螢幕在分離的螢幕中執行長時間執行的程序。如果我保持登錄狀態,程序將完美執行,這包括寫入文件。

我希望能夠從 ssh 會話中註銷並讓程序在分離的螢幕中執行。我嘗試註銷並重新登錄。但是,當我檢查分離的螢幕時,我看到我的程序已經崩潰,因為它沒有寫入文件的權限。

[local]me: ssh info@inf.ed.us
[remote]user: screen    # this pops up a new screen
[remote]user: python get_data.py

然後我按 Ctrl-a d (分離螢幕)

[remote]user: logout
[local]me: ssh info@inf.ed.us
[local]me: screen

這就是我在分離的螢幕上看到的:

Traceback (most recent call last):
     File "get_data.py", line 430, in <module>
     File "get_data.py", line 346, in produce_roof_patches
     File "get_data.py", line 225, in save_patch
   IOError: [Errno 13] Permission denied: '../data/training/labels.csv'

如果我沒有註銷並簡單地分離(Ctrl-a d)並通過“螢幕”重新連接,那麼程序將繼續執行而不會出現任何問題。

我已經讀到這是因為當註銷我的文件系統時,我的文件系統被解除安裝並且程序沒有權限在我的文件系統中的任何地方寫入。有解決方法嗎?

使用絕對路徑而不是相對路徑寫入文件解決了我的問題。

分離…如… <control>-<z> 那麼bg?還是用&符號執行?這些不是分離的。這些是分叉的程序。

可以使用nohup命令啟動分離的程序,或在tmux會話中執行或類似的程序。

如果您想了解有關其中任何一項的更多資訊,請隨時詢問。

引用自:https://serverfault.com/questions/702946