Мне нужно было, чтобы сервер каждые 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.serviceDescription=Cam online
[Service]
Type=simple
ExecStart=/root/bashtophp.sh
croncam.timerDescription=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.serviceMay 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.serviceroot@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.timerroot@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 не останавливался?