我可以从以前的终端恢复纳米流程吗?

Modified on: Fri, 20 Sep 2019 18:20:02 +0800

我在使用未保存的更改进行纳米会话时崩溃了。

当我通过SSH重新登录时,当我执行ps时,我看到nano进程仍在运行。

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收到SIGHUP或SIGTERM或运行时
  内存不足。它会将缓冲区写入名为nano.save的文件中
  缓冲区已经没有名称,或者会添加“.save”后缀
  当前的文件名。如果已有具有该名称的紧急文件
  存在于当前目录中,它将添加“.save”加上一个数字
  (例如“.save.1”)到当前文件名以使其唯一。
  在multibuffer模式下,nano会将所有打开的缓冲区写入其中
  各自的紧急文件。

所以你应该已经在你系统的某个地方有这样一个等待你的文件。

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

(/很可能/ path首先是你从那里发起nano的地方,然后是其他这样的“可能”的地方,那么万不得已:/(当然,以root身份启动最后一次查找命令)或期望大量的错误输出,您可以使用shell的STDERR重定向重定向)

-mtime -1表示“最多1天”,您可能需要将值更改为-2或-3,具体取决于您编辑文件的时间和阅读时间。

如果nano尚未编写此类文件,您可以尝试向其发送一个SIGHUP信号以强制它执行此操作(请参阅:http://en.wikipedia.org/wiki/Unix_signal#POSIX_signals

然后,再次运行查找以查找该文件...

最后,最后一种情况,你可以通过/ proc / kmem来寻找你正在寻找的部分文本,但是这需要一些预防措施来消毒它所显示的内容,并且可能并非无足轻重。或者首先将它写入(与你的记忆一样大)文件。


相关问答

添加新评论