当我在进行未保存更改的 nano 会话时,我的系统崩溃了。
当我通过 SSH 重新登录时,当我执行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 手册页和一些搜索,我发现:
所以你应该已经有这样一个文件在等着你,在你的系统的某个地方。
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 )
然后,再次运行查找以查找该文件...
最后,最后的手段是,您可以尝试通过 /proc/kmem 查找您要查找的部分文本,但这将需要采取一些预防措施来清理它向您显示的内容,并且可能不是微不足道的。或先将其添加到一个(与您的内存一样大)文件中。
它确实像@Oliver Dulac 提到的那样工作,但在某些情况下,nano 只是解释并等待用户命令,而不是将缓冲区转储到文件中。
无需重启还有更多选项:
但程序可以选择忽略上面的 3 个信号,因此按上面的顺序尝试它们,然后检查文件是否已创建,如果它不起作用,请尝试 SIGKILL(在 SIGTERM 之后发送):
请记住,正在运行的程序可以捕获或忽略 SIGHUP、SIGTERM 和 SIGILL,但 SIGKILL 不能。
所以,这可能不适合你,但我刚刚向盒子发送了重启命令。当它恢复在线时,Viola-file.py.save 被放入目录中。