В моей системе произошел сбой, когда я был в нано-сеансе с несохраненными изменениями.
Когда я снова вхожу в систему через 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 попытается сбросить буфер в аварийный файл. Это произойдет в основном, если nano получит сигнал SIGHUP или SIGTERM или исчерпает память. Он запишет буфер в файл с именем nano.save, если у буфера еще не было имени, или добавит суффикс «.save» к текущему имени файла. Если аварийный файл с таким именем уже существует в текущем каталоге, он добавит «.save» плюс число (например, «.save.1») к текущему имени файла, чтобы сделать его уникальным. В многобуферном режиме nano запишет все открытые буферы в соответствующие аварийные файлы.
Так что тебе, возможно, стоит уже такой файл ждет вас где-нибудь в вашей системе.
find /likely/path -mtime -1 -print | egrep -i '\.save$|\.save\.[1-90]*$'
(/ вероятно / путь - это сначала место, откуда вы запустили nano, затем другие подобные «возможные» места, а затем в крайнем случае: /
(конечно, запустите эту последнюю команду find от имени пользователя root или ожидайте большого количества ошибок, которые вы могли бы перенаправить, используя перенаправление STDERR вашей оболочки)
-mtime -1 говорит «до 1 дня назад», вы можете изменить значение на -2 или -3, в зависимости от того, когда вы редактировали файл и когда читаете это.
Если nano еще не записал такой файл, вы можете попытаться отправить ему сигнал SIGHUP, чтобы заставить его сделать это (см.: http://en.wikipedia.org/wiki/Unix_signal#POSIX_signals )
А затем снова запустите поиск, чтобы найти этот файл ...
И, наконец, в крайнем случае, вы можете поиграть с grepping через / proc / kmem для частей текста, которые вы ищете, но это потребует некоторых мер предосторожности, чтобы очистить то, что он вам показывает, и может быть нетривиальным. или сначала поместите его в файл (размером с вашу память).
Так что, возможно, это не вариант для вас, но я просто отправил на ящик команду перезагрузки. Когда он вернулся в сеть, Viola- file.py.save был помещен в каталог.
Он действительно работает, как упоминал @Oliver Dulac, но в некоторых ситуациях вместо сброса буфера в файл Nano просто интерпретирует и продолжает ждать от пользовательской команды, но есть и другие варианты без перезагрузки:
pkill -SIGHUP -e nano
pkill -SIGTERM -e nano
pkill -SIGILL -e nano
но программа может игнорировать эти 3 сигнала выше, поэтому попробуйте их в указанном выше порядке, затем проверьте, был ли файл создан, и если он не работает, попробуйте тот же сигнал, что и при выполнении перезагрузки (который отправляется после SIGTERM)
pkill -SIGKILL -e nano
имейте в виду, что это сигналы для программы, те, что вверху, могут быть интерпретированы и проигнорированы запущенной программой, последней.