@accountnujen

Как можно понять, по какой причине systemd перестал выполнять операции?

Мне нужно было, чтобы сервер каждые 10 минут стучался к моей ip камере и проверял новые видео.
У меня есть php файл, bash файл и 2 файла для systemd (service и timer)
bash нужен лишь для того, чтобы он отправлял на php нужный запрос
bashtophp.sh

#!/bin/bash

php-cgi -f /var/www/site/public/camera/camengine.php cron=true


croncam.service
Description=Cam online

[Service]
Type=simple
ExecStart=/root/bashtophp.sh

croncam.timer
Description=Run every 10 minutes

[Timer]
OnBootSec=1min
OnUnitActiveSec=10min
Unit=croncam.service

[Install]
WantedBy=multi-user.target

Время от времени в логах у меня вылетает вот такая ошибка:
May 03 21:57:43 instance systemd[1]: /etc/systemd/system/croncam.service:1: Assignment outside of section. Ignoring.

В логах у меня она повторяется 80 раз. Никаких предпосылок нет. К примеру, 7-го числа эта ошибка была 5 раз под ряд, а 8-го её вообще не было, 9-го снова 3 раза, а 10-12-го тихо. И эта ошибка никогда не влияла на работу systemd. Он работал штатно. Вот пример лога в обычный день:
journalctl -u croncam.service
...
Dec 18 02:16:08 instance bashtophp.sh[55047]: Bad Request!
Dec 18 02:16:08 instance bashtophp.sh[55047]: </pre><pre>ErrorBad Request!</pre><br><b>reqstat не OK. но возможно видео нет</b><br>конец выполнения
Dec 18 02:16:08 instance systemd[1]: croncam.service: Succeeded.
Dec 18 02:21:19 instance systemd[1]: /etc/systemd/system/croncam.service:1: Assignment outside of section. Ignoring.
Dec 18 02:21:36 instance systemd[1]: /etc/systemd/system/croncam.service:1: Assignment outside of section. Ignoring.
Dec 18 02:26:06 instance systemd[1]: Started croncam.service.
Dec 18 02:26:10 instance bashtophp.sh[56547]: <br>здратути<br><pre>Array
Dec 18 02:26:10 instance bashtophp.sh[56547]: (
Dec 18 02:26:10 instance bashtophp.sh[56547]: )
Dec 18 02:26:10 instance bashtophp.sh[56547]: </pre><br>СТАТУС<br><pre>Array
Dec 18 02:26:10 instance bashtophp.sh[56547]: (
Dec 18 02:26:10 instance bashtophp.sh[56547]:     [time] => 2022-18-12%2002:16:09
Dec 18 02:26:10 instance bashtophp.sh[56547]:     [status] => 0
Dec 18 02:26:10 instance bashtophp.sh[56547]: )
Dec 18 02:26:10 instance bashtophp.sh[56547]: </pre><br>ЗАПРОС ПРИНЯТ И БУДЕТ ОБРАБОТАН В ФОНОВОМ РЕЖИМЕ<br><br>поиск видео<br><br><h1>цикл 0</h1><br><br><h1>Лог</h1><br><pre>Array
# далее просто идёт работа скрипта
...

Но 3 мая у меня произошла такая сиутация:
journalctl -u croncam.service
May 03 12:44:11 instance bashtophp.sh[459438]:                 )
May 03 12:44:11 instance bashtophp.sh[459438]:         )
May 03 12:44:11 instance bashtophp.sh[459438]: )
May 03 12:44:11 instance bashtophp.sh[459438]: </pre><br>вышли<br><br><h1>Операция успешно завершена</h1><br>
May 03 12:44:11 instance systemd[1]: croncam.service: Succeeded.
May 03 12:54:10 instance systemd[1]: Started croncam.service.
May 03 12:54:10 instance bashtophp.sh[459460]: <br>здратути<br><pre>Array
May 03 12:54:10 instance bashtophp.sh[459460]: (
May 03 12:54:10 instance bashtophp.sh[459460]: )
May 03 12:54:10 instance bashtophp.sh[459460]: </pre><br>СТАТУС<br><pre>Array
May 03 12:54:10 instance bashtophp.sh[459460]: (
May 03 12:54:10 instance bashtophp.sh[459460]:     [time] => 2022-05-03%2012:44:09
May 03 12:54:10 instance bashtophp.sh[459460]:     [status] => 0
May 03 12:54:10 instance bashtophp.sh[459460]: )
May 03 21:57:43 instance systemd[1]: /etc/systemd/system/croncam.service:1: Assignment outside of section. Ignoring.

тупо в May 03 12:54:10 скрипт остановился. Никаких ошибок нет, ничего нет. Когда я обнаружил это - в May 03 21:57 сделал запрос systemctl status croncam.service и там в графе Active было (кажется) waiting. Сейчас systemctl status croncam.service выглядит вот так:
systemctl status croncam.service
root@instance:~# systemctl status croncam.service
● croncam.service
     Loaded: loaded (/etc/systemd/system/croncam.service; static; vendor preset: enabled)
     Active: inactive (dead) since Thu 2022-05-05 18:22:20 MSK; 7min ago
TriggeredBy: ● croncam.timer
    Process: 16292 ExecStart=/root/bashtophp.sh (code=exited, status=0/SUCCESS)
   Main PID: 16292 (code=exited, status=0/SUCCESS)

May 05 18:22:20 instance bashtophp.sh[16293]:                             [redirect_time_us] => 141566
May 05 18:22:20 instance bashtophp.sh[16293]:                             [starttransfer_time_us] => 300449
May 05 18:22:20 instance bashtophp.sh[16293]:                             [total_time_us] => 300591
May 05 18:22:20 instance bashtophp.sh[16293]:                         )
May 05 18:22:20 instance bashtophp.sh[16293]:                 )
May 05 18:22:20 instance bashtophp.sh[16293]:         )
May 05 18:22:20 instance bashtophp.sh[16293]: )
May 05 18:22:20 instance bashtophp.sh[16293]: </pre><br>вышли<br><br><h1>Операция успешно завершена</h1><br>
May 05 18:22:20 instance systemd[1]: croncam.service: Succeeded.
May 05 18:30:02 instance systemd[1]: /etc/systemd/system/croncam.service:1: Assignment outside of section. Ignoring.

Вот так выглдяит systemctl status croncam.timer
systemctl status croncam.timer
root@instance:~# systemctl status croncam.timer
● croncam.timer
     Loaded: loaded (/etc/systemd/system/croncam.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Tue 2022-05-03 22:27:35 MSK; 1 day 20h ago
    Trigger: Thu 2022-05-05 18:32:19 MSK; 2min 35s left
   Triggers: ● croncam.service

May 03 22:27:48 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 03 22:30:10 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 04 03:57:50 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 04 03:57:51 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 04 03:57:52 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 04 03:57:52 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 04 03:57:53 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 05 06:23:37 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 05 06:23:37 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.
May 05 18:29:43 instance systemd[1]: /etc/systemd/system/croncam.timer:1: Assignment outside of section. Ignoring.


Теперь вопросы:
Как узнать, почему 3 мая в 12 часов у меня остановился systemd?
Что это за ошибка Assignment outside of section. Ignoring.?
Как сделать, чтобы systemd не останавливался?
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы