Иногда нужно посмотреть, что пишет процесс в stdout или stderr, но ты не запускал его сам и не можешь просто добавить
> log.txt. Есть способ сделать это «на лету» — через /proc.📌 Как это сделать:
1. Найди PID процесса:
pidof имя_процесса
Посмотри его файловые дескрипторы:
ls -l /proc/<PID>/fd
Подключись к stdout (1) или stderr (2):
sudo cat /proc/<PID>/fd/1 # stdout
sudo tail -f /proc/<PID>/fd/2 # stderr
🎯 Это работает в реальном времени — как tail -f, но для чужого процесса. Можно даже писать в лог:
cat /proc/1234/fd/2 >> error.log
📍 Зачем это нужно?
– Отладка systemd-процессов без их перезапуска
– Просмотр вывода фоновых демонов
– Мониторинг "тихих" процессов без логирования
– Интеграция в скрипты и аварийную диагностику
🔐 Нужны root-права или доступ к процессу от того же пользователя.
💡 Нетривиальный, но очень мощный трюк для системного администратора.