Если Linux-приложение падает и пишет что-то вроде “config not found”, не гадай, где оно ищет файл.

Используй strace.

Команда:

strace -f -e trace=file myapp 2>&1 | grep -E 'ENOENT|EACCES|openat|stat'

Она покажет, какие файлы программа реально пытается открыть.

Смотри на три вещи:

ENOENT - файл не найден

EACCES - нет прав

openat / stat - точный путь, куда программа полезла

Это особенно спасает, когда сервис не видит конфиг, бинарник не находит .so библиотеку или приложение ищет сокет и сертификат вообще не там, где ты думал.

А если процесс уже запущен:

sudo strace -f -e trace=file -p PID

Один из самых полезных приёмов для отладки Linux: не угадывать проблему, а посмотреть, что процесс делает на самом деле.
👍 28
🔥 14
10
227 4.9K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram