Служба демона, созданная с помощью systemd, которая запускает скрипт PHP, останавливается, но продолжает работать

Я сделал демон с PHP на основе этого ответа
Я остановил это, но я регистрирую это, и я вижу, что все еще работает.

Я обнаружил такое поведение в поиске ошибки, потому что я вижу некоторые обновления БД, которых нет в журнале, поэтому я считаю, что у меня какая-то проблема с совпадением.

ОБНОВЛЕНИЕ ДАННЫХ: Подтверждено, что ошибка является проблемой совпадения и была исправлена, похоже, что служба работает несколько раз. Но служба мертва и продолжает работать
Также удалил дубликат, удалив символическую ссылку (там было 2) в system.d/system

Мой сервисный файл:

[Unit]
Description=PHP Daemon Service for Vesta Devices
Requires=mysql.service
After=mysql.service
#Requires=mysqld.service memcached.service #May your script needs mysql or other services to run.
#After=mysqld.service

[Service]
User=root
Type=simple
TimeoutSec=0
Restart=always
PIDFile=/var/run/vestadevicesdaemon.pid
ExecStart=/bin/sh -c '/usr/bin/php -f /var/www/daemons/discoverdevices.php 2>&1 > /var/www/daemons/logs/discoverdevices.log'
#ExecStop=/bin/kill -HUP $MAINPID #It's the default you can change whats happens on stop command
#ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
RestartSec=42s

[Install]
WantedBy=default.target

и мой файл PHP:

<?php
gc_enable();//

while (!connection_aborted() || PHP_SAPI == "cli") {
  //Code Logic
  //Doing somework with DB and logging
sleep(5);

  //sleep and usleep could be useful
    if (PHP_SAPI == "cli") {
        if (rand(5, 100) % 5 == 0) {
            gc_collect_cycles(); //Forces collection of any existing garbage cycles
        }
    }
}

Выход из systemctl status vesta.discover_devices.service является:

leandro@prometeo:~$ systemctl status vesta.discover_devices.service
● vesta.discover_devices.service - PHP Daemon Service for Vesta Devices
   Loaded: loaded (/var/www/daemons/vesta.discover_devices.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2018-08-21 13:04:53 -03; 11min ago
  Process: 1414 ExecStart=/bin/sh -c /usr/bin/php -f /var/www/daemons/discoverdevices.php 2>&1 > /var/www/daemons/logs/discoverdevices.log
 Main PID: 1414 (code=killed, signal=TERM)
    Tasks: 4 (limit: 1112)
   CGroup: /system.slice/vesta.discover_devices.service
           ├─1428 /usr/bin/php -f /var/www/daemons/discoverdevices.php
           ├─2358 sh -c sudo /usr/bin/nmap -sP -oX -  192.168.0.0/24 2>&1
           ├─2359 sudo /usr/bin/nmap -sP -oX - 192.168.0.0/24
           └─2360 /usr/bin/nmap -sP -oX - 192.168.0.0/24

ago 21 13:15:49 prometeo sudo[2335]: pam_unix(sudo:session): session opened for user root by (uid=0)
ago 21 13:15:53 prometeo sudo[2335]: pam_unix(sudo:session): session closed for user root
ago 21 13:15:58 prometeo sudo[2338]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/nmap -sP -oX - 192.168.0.0/24
ago 21 13:15:58 prometeo sudo[2338]: pam_unix(sudo:session): session opened for user root by (uid=0)
ago 21 13:16:03 prometeo sudo[2338]: pam_unix(sudo:session): session closed for user root
ago 21 13:16:08 prometeo sudo[2346]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/nmap -sP -oX - 192.168.0.0/24
ago 21 13:16:08 prometeo sudo[2346]: pam_unix(sudo:session): session opened for user root by (uid=0)
ago 21 13:16:23 prometeo sudo[2346]: pam_unix(sudo:session): session closed for user root
ago 21 13:16:28 prometeo sudo[2359]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/nmap -sP -oX - 192.168.0.0/24
ago 21 13:16:28 prometeo sudo[2359]: pam_unix(sudo:session): session opened for user root by (uid=0)

Любая помощь или попадание будут предотвращены, потому что я очень потерян здесь, не могу понять, почему продолжает работать, если какое-то время, задача обслуживания или какая-то конфигурация неправильно.

0 ответов

Другие вопросы по тегам