LINUX.ORG.RU

Как сделать php скрипт как службу и обращаться к нему?

 ,


0

1

Приветствую

Скажите как php скрипт запустить как службу. А потом обратится к ней и передать параметры. Скрипт демон обработает их и выдаст результат.

например в консоли

getcountry 23.34.56.17

и выводит результат.

скрипт есть. все работает. задача сделать ето как службу или демон. не знаю как правильно это называется

пых - обычный язык. выучи его и напиши демона.

Anoxemian ★★★★★
()

вся магия у сервиса Type=forking

monkdt
()

google «линукс как запустить скрипт на php как демона» (41000 результатов) или «как написать демона на php» (196000 результатов).

Irma ★★★
()

А тебе для чего? Если в учебных целях, то https://www.php.net/manual/en/features.commandline.webserver.php Если для продакшена, то сделай обычное rest api на nginx + php-fpm и обращайся к нему консольным http клиентом типа httpie, curl или чем хочешь

cobold ★★★★★
()

А зачем тебе это как «демон» если это у тебя обычный скрипт которому похоже не нужно быть запущенным на постоянку. Используй как обычный бинарник, добавь в $PATH путь до него и будешь запускать где хочешь.

Noob_Linux ★★★★
()
Ответ на: комментарий от MKuznetsov

Вооо, молодцы, притащили нжынкс, докер еще в довесок, потом еще и кубернетис понадобится! А просто

php /path/to/script.php 
нельзя да?

ggrn ★★★★★
()
Ответ на: комментарий от ggrn

Вооо, молодцы, притащили нжынкс, докер еще в довесок, потом еще и кубернетис понадобится!

мне кажется, он прикалывается (..иначе никак)

pihter ★★★★★
()

Скрипт демон обработает их и выдаст результат.

демон

выдаст результат

Куда выдаст-то? В логи что ли надо?

задача сделать ето как службу или демон. не знаю как правильно это называется

Надо узнать. Или хотя бы объяснить, что именно хочется. Потому что пока нифига не понятно (остальным тоже, судя по ответам).

Может тебе cron нужен, и скрипт запускать каждые несколько минут, с выводом результата в файл?

Или что?

Скрипт же завершается и выводит результат, что тут вообще демонизировать и зачем?

CrX ★★★★★
()
Ответ на: комментарий от flant

ну и как это демонизировать

амперсандом!

или не – скрином!

у вас что, детства не было? )

pihter ★★★★★
()

есть колокольчик

например трясёшь — он звон издаёт

колокольчик есть. все работает. задача сделать ето как будильник или метроном. не знаю как правильно это называется

CrX ★★★★★
()

в скрипте делаешь вечный цикл, и в нем засыпаешь на 1 сек. внедряешь в скрипт обработчик сигналов от ОС и вешаешь обработчик на SIGHUP. в директории со скриптом (не обязательно) создаешь файл command в него втыкаешь строку «getcountry 23.34.56.17». в обработчике SIGHUP считываешь содержимое файла command парсишь/сравниваешь и далее делаешь что хочешь. затем удаляешь файл. захотел дать команду - пишешь в файл команду, посылаешь php демону SIGHUP

Vlad-76 ★★★★
()

подключаешь библиотеку socket или как для php она называется. и делаешь из php скрипта tcp server. Дальше рассказывать?

Vlad-76 ★★★★
()

подключаешь к php либу, которая умеет создавать unix socket

помниться была книжка по UNIX IPC (inter proccess communication)

могу еще способ подкинуть пишешь скрипт в котором читаешь STDIN. и делаешь из него по типу telnet server. telnet server под линукс на самом деле не умеет слушать TCP сокет, он работает совместно с inetd приблудой (/etc/inetd.conf). Вам остается в вечном цикле скрипта читать STDIN (обрабатывать ввод команд) и обрабатывать их. Подключаться к скрипту telnet ом. вывод скрипта в STDOUT

Vlad-76 ★★★★
()
Последнее исправление: Vlad-76 (всего исправлений: 2)
Ответ на: комментарий от ggrn

А просто…нельзя да?

нельзя конечно-же. Будет отстой немодный. Даже в inetd прямо никак, только через systemd

Что там, кубернетис ? вот дело говоришь..

MKuznetsov ★★★★★
()

Судя по постановке задачи, тебе не нужен никакой демон и служба. Тебе нужно написать на PHP (пусть так) консольное приложение, где ты будешь разбирать опции командной строки. Вот тут про это читай.

Дальше в шебанг прописываешь путь к интерпретатору PHP и делаешь файл исполняемым (chmod +x).

Wizard_ ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.