rekryt / iplist

IP Address Collection and Management Service with multiple output formats: mikrotik, json, text, ipset, nfset, clashx, keenetic, switchy, amnezia
https://iplist.opencck.org
MIT License
108 stars 8 forks source link

Автозапуск в фоне #3

Open EvilSlesh opened 1 month ago

EvilSlesh commented 1 month ago

Установил на VPS без докера Срипт отлично запускается в ручную командой php index.php и работает. написал демона

[Unit]
Description=DNS Resolving Service

[Service]
ExecStart=-/usr/bin/php /root/iplist/index.php
PIDFile=/var/run/php/php-worker.pid
RemainAfterExit=no
Restart=on-failure
RestartSec=5s

проверяю systemctl status тоже вроде все хорошо, вывод есть

Oct 16 08:02:42 vm880664 php[10244]: [2024-10-16T11:02:42.934646+03:00] iplist.ERROR: All query attempts failed for frankfurt10073.discord.gg: No response for 'frankfurt10073.disco>
Oct 16 08:02:42 vm880664 php[10244]: [2024-10-16T11:02:42.944863+03:00] iplist.ERROR: All query attempts failed for frankfurt10079.discord.gg: No response for 'frankfurt10079.disco>
Oct 16 08:02:42 vm880664 php[10244]: [2024-10-16T11:02:42.950326+03:00] iplist.ERROR: All query attempts failed for frankfurt10076.discord.gg: No response for 'frankfurt10076.disco>
Oct 16 08:02:42 vm880664 php[10244]: [2024-10-16T11:02:42.952289+03:00] iplist.ERROR: All query attempts failed for frankfurt10070.discord.gg: No response for 'frankfurt10070.disco>
Oct 16 08:02:42 vm880664 php[10244]: [2024-10-16T11:02:42.953672+03:00] iplist.ERROR: All query attempts failed for frankfurt10075.discord.gg: No response for 'frankfurt10075.disco>

Но в браузере страница не открывается, вечная загрузка и никаких ошибок. При ручном запуске все хорошо. Подскажите как правильно запускать скрипт в фоне?

rekryt commented 1 month ago

Проверьте открылся ли сетевой порт:

netstat -tuln | grep LISTEN

ufw не блокирует?

ufw allow 8080/tcp

Что если попробовать так:

[Service]
ExecStart=-cd /root/iplist/ && /usr/bin/php /root/iplist/index.php

Или указать другой порт

[Service]
Environment="HTTP_PORT=80"
EvilSlesh commented 1 month ago

Порт 47133 открыт tcp 20 0 0.0.0.0:47133 0.0.0.0:* LISTEN

ufw не блокирует? ufw порт не блокирует

Что если попробовать так: Не запускается скрипт

○ dns_resolver.service - DNS Resolving Service
     Loaded: loaded (/etc/systemd/system/dns_resolver.service; enabled; preset: enabled)
     Active: inactive (dead) since Wed 2024-10-16 09:11:17 UTC; 49s ago
   Duration: 45ms
    Process: 1011 ExecStart=cd /root/iplist/ && /usr/bin/php /root/iplist/index.php (code=exited, status=0/SUCCESS)
   Main PID: 1011 (code=exited, status=0/SUCCESS)
        CPU: 14ms

Oct 16 09:11:17 vm880664 systemd[1]: Started dns_resolver.service - DNS Resolving Service.
Oct 16 09:11:17 vm880664 systemd[1]: dns_resolver.service: Deactivated successfully.

Или указать другой порт Порт у меня как раз указан 47133

При ручном запуске командой php index.php страничка нормально открывается, но скрипт перестанет выполняться после закрытия SSH, а если запускаю в фоне то страница не открывается.

EvilSlesh commented 1 month ago

Попробовал использовать Supervisor для запуска в фоне.

[program:resolver]
command=/usr/bin/php /root/iplist/index.php
process_name=%(program_name)s
autorestart=true
redirect_stderr=true
stopsignal=KILL
killasgroup=true
stdout_logfile=/var/log/supervisor/test.log
stdout_events_enabled=false
loglevel=warn
user=root
environment=APPLICATION_ENV=testing

Скрипт в фоне работает

[2024-10-16T13:10:40.738275+03:00] iplist.ERROR: All query attempts failed for wstracker.online: Unexpected error during resolution: Amp\ByteStream\Readab> [2024-10-16T13:10:40.739298+03:00] iplist.ERROR: All query attempts failed for www.anilibria.tv: Unexpected error during resolution: Amp\ByteStream\Readab> [2024-10-16T13:10:41.221314+03:00] iplist.ERROR: Giving up resolution of 'wstracker.online', too many redirects ["77.88.8.88:53"] [] [2024-10-16T13:10:41.460236+03:00] iplist.ERROR: Giving up resolution of 'wstracker.online', too many redirects ["8.8.8.8:53"] [] [2024-10-16T13:10:41.679139+03:00] iplist.ERROR: Giving up resolution of 'wstracker.online', too many redirects ["1.1.1.1:53"] []

Но страницу тоже не грузит, вечная загрузка странички в браузере.

rekryt commented 1 month ago

Попробуйте использовать screen

Создайте bash скрипт, например в /home/iplist/start.sh

nano /home/iplist/start.sh
#!/bin/sh

cd /home/iplist/

while true ; do
sleep 2

/usr/bin/php index.php

done

Выдайте ему права на запуск

chmod +x /home/iplist/start.sh

Установите screen (если нету)

apt install -y screen

Запустите скрипт из под screen

screen -dmS iplist /home/iplist/start.sh

Для входа в скрин:

screen -r iplist
# нажмите Ctrl + A + D для выхода из скрина

Для выхода из screen-а нажмите держа Ctrl клавишу A затем D.

Команду можно поставить на автозапуск:

screen -dmS iplist /home/iplist/start.sh

Но в целом было бы не плохо разобраться почему не получается с сервисом.