У меня есть процесс nohup, работающий на моей FreeBSD 8.4 коробке. Первоначально я смотрел на вывод сообщений консоли nohup через
tail -f nohup.out
но я случайно удалил nohup.файл. Как получить доступ к сообщениям консоли ?
У меня есть процесс nohup, работающий на моей FreeBSD 8.4 коробке. Первоначально я смотрел на вывод сообщений консоли nohup через
tail -f nohup.out
но я случайно удалил nohup.файл. Как получить доступ к сообщениям консоли ?
да, хотя файл все еще там, пока процесс держит его открытым, потому что он был unlink
- ed, он больше не доступен.
Если вам нужно продолжать видеть сообщения, как они создаются, вы можете включить ktrace
о процессе, который их генерирует:
% ktrace -p PID
% kdump -l
выше будет список все системные вызовы, сделанные процессом, однако, не только пишет stdout
и stderr
, так что это может быть немного подавляющим и / или требуют дополнительных фильтрация, чтобы получить только то, что вы хотите видеть.
если вам нужна копия файла, вы можете использовать одну из утилит общего назначения, например tsk_recover
С sysutils / sleuthkit порт. Обычная мудрость не писать в файловую систему, содержащую случайно удаленные файлы, которые вы хотите восстановить, не применяется, потому что у вас все еще есть процесс сохранения файла открытым.
однако, восстановление создаст скопировать удалил файл -- ничего о нем тот же процесс не будет в копии.
к сожалению, я не могу думать ни о чем другом... На Solaris я когда-то смог восстановить удаленный файл, который все еще был открыт процессом, перейдя в /proc/PID/fd/...
, но procfs во FreeBSD такой функциональности не предлагает...
по данным ответ на /proc/PID/fd
метод также будет работать на Linux, но linprocfs во FreeBSD не имеется. Стыд, очень...
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]