Как понять, почему не работает сервис?

Понадобился мне firebird-сервер. Скачал с офф. сайта, потом с AUR - одна и та же проблема: сервис как бы стартует, и тут же тихо завершается. Вот так:
~ # systemctl start firebird.service
~ # systemctl status firebird.service
● firebird.service - Firebird Database Service (SuperServer)
   Loaded: loaded (/usr/lib/systemd/system/firebird.service; enabled; vendor preset: disabled)
Process: 29535 ExecStart=/usr/lib/firebird/bin/fbguard -pidfile /run/firebird/default.pid -daemon -forever (code=exited, status=0/SUCCESS)
  Process: 29535 ExecStart=/usr/lib/firebird/bin/fbguard -pidfile /run/firebird/default.pi
 Main PID: 29537
~ # kill 29537                                                                        [3]
kill: kill 29537 failed: Нет такого процесса
Через dmesg при этом ничего не выводится.
Сам сервис такой (это из AUR):
[Unit]
Description=Firebird Database Service (SuperServer)
After=syslog.target network.target

[Service]
User=firebird
Group=firebird
Type=forking
PIDFile=/run/firebird/default.pid
ExecStart=/usr/lib/firebird/bin/fbguard -pidfile /run/firebird/default.pid -daemon -forever
SyslogIdentifier=firebird

[Install]
WantedBy=multi-user.target
Но если я ту же самую команду, что прописана в сервисе (/usr/lib/firebird/bin/fbguard и т.д.), выполняю в терминале, firebird-сервер спокойно запускается и работает. Более того, когда я его вызов вставил в rc.local (который вызывается из сервиса совместимости), firebird-сервер тоже запускается без проблем.
То есть по делу проблему запуска firebird-сервера я решил, но очень хотелось бы научиться понимать, что же происходит при штатном запуске. Куда ещё смотреть, если ни systemctl status, ни dmesg ничего не сообщают?
journalctl _PID=29537

И еще вот.
https://gist.github.com/aandresortiz/a340b3bb9db67ba78141
gentux
journalctl _PID=29537
Пусто:
~ # systemctl status firebird.service                                                 [0]
● firebird.service - Firebird Database Service (SuperServer)
   Loaded: loaded (/usr/lib/systemd/system/firebird.service; enabled; vendor preset: disab
   Active: inactive (dead) since Tue 2017-10-24 08:40:34 EEST; 2min 43s ago
  Process: 708 ExecStart=/usr/lib/firebird/bin/fbguard -pidfile /run/firebird/default.pid
 Main PID: 725
~ # journalctl -b _PID=725                                                            [3]
-- Logs begin at Tue 2017-01-31 17:17:43 EET, end at Tue 2017-10-24 08:43:24 EEST. --
-- No entries --
По _PID=708 тоже пусто
gentux
И еще вот.
https://gist.github.com/aandresortiz/a340b3bb9db67ba78141
А тут рассказывается о том, как создать симлинк на файл, которого нет (/opt/firebird/bin/isql) и как запустить сервис, который и так автоматом запускается при установке. Вероятно, статья неактуальная или о какой-то другой версии firebird-сервера. И, главное, в ней ни слова нет о том, как узнать почему сервис завершается сразу после запуска.
Поставить syslog-ng и по старинке посмотреть в /var/log/daemons, errors, и т.д.
Встроенной отладки юнитов/сервисов нет. Но в свое время то же интересовался этим, но информации мало.
Лучшее, что понравилось это применение strace (с выводом в лог), например, типа такого (опции strace на любителя + можно уменьшить вывод, используя фильтры)
ExecStart=/usr/bin/strace -fr -o /path/firebird.log /usr/lib/firebird/bin/fbguard -pidfile /run/firebird/default.pid -daemon -forever
Нашел еще и эту статейку, но ее не использовал, руки не дошли.
UPD ... после изменения юнита нужно выполнить соответствующие операции. Не забывай, strace будет писать в лог постоянно и размер может быть очень большим - нужно будет во время процесс убить/остановить.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.