#php #linux #systemd
Вопрос:
Мое первое приключение в мире сервисов Linux, и у меня сейчас плохие времена. У меня есть следующий сценарий:
[Unit] Description=PHP MQTT Service [Service] User=root Type=simple TimeoutSec=0 PIDFile=/var/run/php_app_mqtt.pid ExecStart=/opt/plesk/php/7.4/bin/php -f xyz.xx/subtest.php StandardOutput=/var/log/myphpdaemon.log StandardError=/var/log/myphpdaemon.log KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=default.target
Когда я вручную запускаю скрипт из командной строки, он работает просто отлично, но когда я запускаю его из службы, я получаю следующее:
Loaded: loaded (/etc/systemd/system/mqttdaemon.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Wed 2021-11-10 20:51:06 UTC; 6s ago Process: 185754 ExecStart=/opt/plesk/php/7.4/bin/php -f xyz.xx/subtest.php (code=exited, status=1/FAILURE) Main PID: 185754 (code=exited, status=1/FAILURE)
Это от меня, вручную запускающего службу. У меня нет подсказок, у кого-нибудь есть представление об этой проблеме?
Спасибо!
ИЗМЕНИТЬ: В указанном месте журналы не создаются
Комментарии:
1. Каково возвращаемое значение скрипта?
php -f .../subtest.php ; echo $?
. Он возвращается по вызову наexit $something;
2. Сценарий содержит цикл, который не остановится, пока я не отправлю команду CTRL C. Теперь я не знаю, как проверить, возвращает ли скрипт что-то при запуске службой. Я думал, что это будет в журналах.