Nebiros![]() | Как держать Ratchet всегда в работоспособности?1680296832 Запуская скрипт из консоли я уже наладил всё, то есть работает всё как нужно, но как только я закрою консоль то и прекратится серверная поддержка, причём если я снова открою консоль и попытаюсь запустить снова скрипт то мне напишет что порт занят, при этом он не будет работать, скрипт на сервере стандартный
мне нужно чтобы он был всегда в рабочем состоянии, то есть во первых при запуске/перезагрузке сервера он сразу же включался, во вторых если вдруг он перестанет работать (пока что не знаю как это проверить) то порт освободить и запустить скрипт...
Подскажите как это сделать? |
Fart83![]() | 1680296932 как вариант, для плавного рестарта сервисов используют systemd, pcntl, shell*, exec.
для грубой работы можете написать "слушателя" процесса.
при возникновении ошибки убивать процесс и возобновлять работу.
UPD на счет Ratchet. c ним работать легко, но вот workerman будет поприятнее. с ним сервисы подобные писать легко, в том числе задачи вашего поста. Nebiros![]() ![]() |
Nebiros![]() | Обновлен 1680297723 Fart83,« как вариант, для плавного рестарта сервисов используют systemd, pcntl, shell*, exec.
для грубой работы можете написать "слушателя" процесса.
при возникновении ошибки убивать процесс и возобновлять работу.»
вы имеете ввиду в кроне проверять работает ли скрипт и если нет то через exec убивать процесс и запускать?
если да то можно написать как это конкретно в командах будет выглядеть?
я имею виду проверить работает ли процесс и убить процесс с помощью php команды, которая как я понимаю будет запускаться в кроне...
Fart83,
«UPD на счет Ratchet. c ним работать легко, но вот workerman будет поприятнее. с ним сервисы подобные писать легко, в том числе задачи вашего поста.»
да как бы уже то что нужно написано и вроде работает как нужно, а если быть точнее то мне всего-то был нужен был ретранслятор, от одного клиента выходит и нужным клиентам разносится... влепить жирный лайк![]() |
Fart83![]() | 1680297658 Nebiros, «если да то можно написать как это конкретно в командах будет выглядеть?»
на скорую руку: пробрасываете запросы (api, пингуете), нет ответа - рестарт процессов и киллтаск зависших процессов.
используйте стандартный функционал для работы с сокетами.
примеры есть в мануле.
https://www.php.net/manual/ru/book.sockets.php Nebiros![]() ![]() |