Linux

我可以從以前的終端恢復納米程序嗎?

  • August 9, 2019

當我處於未保存更改的 nano 會話中時,我的系統崩潰了。

當我通過 SSH 重新登錄時,我看到 nano 程序在我執行ps.

davidparks21@devdb1:/opt/frugg_batch$ ps -ef | grep nano
1001     31714 29481  0 18:32 pts/0    00:00:00 nano frugg_batch_processing
1001     31905 31759  0 19:16 pts/1    00:00:00 grep --color=auto nano
davidparks21@devdb1:/opt/frugg_batch$

有沒有辦法可以在新終端中將納米工藝重新置於我的控制之下?

或者有什麼方法可以強制它遠端保存(從我的新終端)?

閱讀 nano 手冊頁和一些搜尋,我發現:

在某些情況下,nano 會嘗試將緩衝區轉儲到緊急文件中。這主要發生在 nano 收到 SIGHUP 或 SIGTERM 或記憶體不足時。如果緩衝區還沒有名稱,它會將緩衝區寫入名為 nano.save 的文件中,或者將“.save”後綴添加到目前文件名中。如果目前目錄中已經存在具有該名稱的緊急文件,它將在目前文件名中添加“.save”和一個數字(例如“.save.1”),以使其唯一。在多緩衝區模式下,nano 會將所有打開的緩衝區寫入各自的緊急文件。

因此,您可能應該已經在系統的某個地方有這樣的文件在等著您。

find /likely/path -mtime -1 -print | egrep -i '\.save$|\.save\.[1-90]*$'

(/likely/path 首先是您啟動 nano 的地方,然後是其他此類“可能”的地方,然後是最後/的手段:(當然,以 root 身份啟動最後一個 find 命令或期望大量錯誤輸出,您可以使用您的 shell 的 STDERR 重定向重定向)

-mtime -1 表示“最多 1 天”,您可能需要將值更改為 -2 或 -3,具體取決於您編輯文件的時間和閱讀此文件的時間。

如果 nano 還沒有編寫這樣的文件,您可以嘗試向它發送 SIGHUP 信號以強制它這樣做(請參閱:http ://en.wikipedia.org/wiki/Unix_signal#POSIX_signals )

然後,再次執行 find 以查找該文件…

最後,最後的手段是,您可以通過 /proc/kmem 對您正在查找的部分文本進行 grepping,但這將需要採取一些預防措施來清理它向您顯示的內容,並且可能不是微不足道的。或首先將其添加到(與您的記憶體一樣大)文件中。

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