Php скрипт. Демон. Как запустить?

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
a.barminov
мл. сержант
Сообщения: 81
Зарегистрирован: 2008-03-28 19:41:29
Откуда: Казань
Контактная информация:

Php скрипт. Демон. Как запустить?

Непрочитанное сообщение a.barminov » 2008-06-08 6:19:16

Здравствуйте!

Есть скрипт php который запускает стороннюю программу при помощи exec() в цикле while.
Сторонняя программа выводит в консоль плоды своей работы, но это не stdout.

Как запустить php скрипт, чтобы после отсоединения от консоли он продолжал выполняться? Пробовал через rc.d:

Код: Выделить всё

#!/bin/sh


# PROVIDE: phpdaemon
# KEYWORD: shutdown

phpdaemon_enable=${phpdaemon_enable-"NO"}
phpdaemon_flags=${phpdaemon_flags-""}
phpdaemon_pidfile=${phpdaemon_pidfile-"/var/run/phpdaemon.pid"}

. /etc/rc.subr

name="phpdaemon"
rcvar=`set_rcvar`
command="/home/phpdaemon.sh &"

load_rc_config $name

pidfile="${phpdaemon_pidfile}"
start_precmd="`/usr/bin/limits -e -U root`"
start_postcmd="`/usr/bin/limits -e -C daemon`"

run_rc_command "$1"
cat /home/phpdaemon.sh:

Код: Выделить всё

#!/bin/sh
/usr/local/bin/php /home/apache/while.php
Но процесс всё равно отключается.

Подскажите пожалуйста как решить проблему. Спасибо.

Чуть не забыл: команда, которая выполняется в exec() выполняется от root'а.
Последний раз редактировалось a.barminov 2008-06-08 6:59:46, всего редактировалось 1 раз.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Php скрипт. Демон. Как запустить?

Непрочитанное сообщение zg » 2008-06-08 6:51:17

&

Аватара пользователя
a.barminov
мл. сержант
Сообщения: 81
Зарегистрирован: 2008-03-28 19:41:29
Откуда: Казань
Контактная информация:

Re: Php скрипт. Демон. Как запустить?

Непрочитанное сообщение a.barminov » 2008-06-08 6:58:44

zg писал(а):&
Пробовал. Отключается.

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Php скрипт. Демон. Как запустить?

Непрочитанное сообщение zg » 2008-06-08 8:09:23

Код: Выделить всё

   Background Commands (&)
     If a command is terminated by the control operator ampersand (`&'), the
     shell executes the command asynchronously; the shell does not wait for
     the command to finish before executing the next command.

     The format for running a command in background is:

           command1 & [command2 & ...]

     If the shell is not interactive, the standard input of an asynchronous
     command is set to /dev/null.
если из консоли, то запускать надо так

Код: Выделить всё

/usr/local/bin/php /home/apache/while.php &
если скрипт должен демонизироваться, то http://ru2.php.net/manual/ru/function.pcntl-fork.php

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Php скрипт. Демон. Как запустить?

Непрочитанное сообщение paradox » 2008-06-08 10:10:20

может
/usr/sbin/daemon
man daemon

Аватара пользователя
a.barminov
мл. сержант
Сообщения: 81
Зарегистрирован: 2008-03-28 19:41:29
Откуда: Казань
Контактная информация:

Re: Php скрипт. Демон. Как запустить?

Непрочитанное сообщение a.barminov » 2008-06-08 20:05:00

paradox писал(а):может
/usr/sbin/daemon
man daemon
Это решение подошло. Всё работает. Спасибо огромное!


Всем спасибо!!

P.S. Требую смайлик "YAHOO" в наборы смайлов

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Php скрипт. Демон. Как запустить?

Непрочитанное сообщение Alex Keda » 2008-06-08 21:05:35

что касается амперсанда - в 4.11 оно работало - после логоффа - когда умерли родительские процессы - просесс в бакгроунде продолжал жить.
на шестёрке это уже не так - нормалное поведение когда он умирает.
редко-редко в результате каких-то глюков остаётся жить.
Убей их всех! Бог потом рассортирует...