Сервис запущен, порт слушает, CPU есть, а в логах тишина и это может быть опасно т.к: нет аудита, нет диагностики, нельзя понять, что происходит. Будем пробовать искать их.
1️⃣ Проверяем, куда вообще пишет сервис
systemctl status myservice
Смотрим:
Loaded
Active
путь к unit-файлу
Далее:
systemctl show myservice -p StandardOutput -p StandardError
Если:
StandardOutput=null
StandardError=null
это означает, что логирование отключено.
2️⃣ Проверяем journal
journalctl -u myservice --since "1 hour ago"
Если пусто, а сервис активен:
systemctl is-active myservice
3️⃣ Проверяем, есть ли вообще лог-файлы. Иногда сервис пишет в файл, а не в journal:
lsof -p $(pgrep -x myservice) | grep log
Или:
ls -l /var/log | grep myservice
4️⃣ Проверяем stdout/stderr процесса
ls -l /proc/$(pgrep -x myservice)/fd
Если дескрипторы 1 и 2 указывают в /dev/null - сервис глухой.
5️⃣ Смотрим конфиг самого приложения. Часто в конфиге:
log_level = none
logging = false
daemon = true
6️⃣ Мини-детектор тихих сервисов. Проверяем активные сервисы без событий в journal за час:
for s in $(systemctl list-units --type=service --state=running --no-legend | awk '{print $1}'); do
count=$(journalctl -u "$s" --since "1 hour ago" | wc -l)
(( count == 0 )) && echo "Тихий сервис: $s"
done
BashTex 📱 #bash #utils