как получить вывод запущенного процесса nohup, если nohup.из удаляется

У меня есть процесс nohup, работающий на моей FreeBSD 8.4 коробке. Первоначально я смотрел на вывод сообщений консоли nohup через

tail -f nohup.out

но я случайно удалил nohup.файл. Как получить доступ к сообщениям консоли ?

20
задан Dcoder
14.11.2022 23:36 Количество просмотров материала 3197
Распечатать страницу

1 ответ

да, хотя файл все еще там, пока процесс держит его открытым, потому что он был 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 не имеется. Стыд, очень...

1
отвечен Mikhail T. 2022-11-16 07:24

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх