Ошибка в логах, зависший процесс и другие грабли *nix-систем
Сел разбираться с зависшими процессами в Linux и FreeBSD — и понял, что многие типичные косяки на самом деле из-за банальной невнимательности. Вот что чаще всего вылазит:
- Процессы, которые не убиваются даже через kill -9 — обычно это проблемы с I/O или挂nт на уровне ядра. Проверяешь dmesg и /proc/[pid]/stack, если есть — копаешь глубже или перезагружаешь систему.
- Ошибки в правах доступа, которые не дают писать или читать файлы — часто забывают про правильное использование chmod и chown, или путают с ACL. Ошибку видно сразу в логах, но ругается так, что можно и не сразу понять, где конкретно.
- Неудачное обновление пакетного менеджера — бывает, что пакеты не подтягиваются из-за некорректных репозиториев, или кеш сломан. Решение — ручная очистка кеша (apt clean, pkg clean, или аналог для своей системы) и проверка конфига.
- Настройки сети — при смене конфигов часто забывают перезапустить сервис или применить изменения. Проверяю через ifconfig/ip и systemctl restart network или equivalent.
- Системный журнал — его быстро заполняют ненужные дебаг-сообщения, а места мало. Привык смотреть размер лога и чистить/ротацию настраивать заранее.
В целом, чтобы избежать подобных казусов, круто всегда делать свой мини-чеклист:
1. Смотрю логи — там всегда подсказка.
2. Проверяю права и владельца.
3. Смотрю текущие процессы и их состояние.
4. Перезагружаю сервисы или демоны, которые участвовали в изменениях.
5. Если совсем крыша съезжает — перезагрузка.
Если кто ещё ловил что-то прикольное и неочевидное, делитесь. Особенно интересно, как вы лечите «зависшие» процессы без ребута.