URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 75783
[ Назад ]

Исходное сообщение
"Запуск программы из apache+php"

Отправлено VArtem , 21-Авг-07 11:23 
Доброго времени суток!

Пользователь заходит на php-страничку - там выбирает чего-либо и в соответствии с этим должны измениться правила ipfw. Все сделал, но вот осталась такая незадача, что апач у меня под пользователем www, а изменять правила фаера можно только под рутом. Можно записывать в крон, но в крон минимальное время - минута, а минута отсутствия интернета - не есть хорошо. Думал как вариант написать/найти программу даймон типа крона, в которой была бы возможность ставить на выполнение, допустим каждые 5 сек. Может кто-то подскажет более простое решение задачи


Содержание

Сообщения в этом обсуждении
"Запуск программы из apache+php"
Отправлено paranoik , 21-Авг-07 11:51 
Можно дать права www на использование ipfw (например через sudo). но имхо затея не сильно хорошая.
насколько я понимаю єто все для раздачи инета?? Ну так есть билинг системы, они и должны что-то разрешать/запрещать конечному пользователю, а фаервол устанавливает главные правила, которые менять в процессе работы часто не нужно.

"Запуск программы из apache+php"
Отправлено Oyyo , 21-Авг-07 13:02 
>Можно дать права www на использование ipfw (например через sudo). но имхо
>затея не сильно хорошая.

это не есть хорошо, тем более при использовании РНР,
очень большая дыра в безопасности

>Думал как вариант написать/найти программу даймон типа крона,
>в которой была бы возможность ставить на выполнение, допустим каждые 5 сек.

таких не знаю, я делаю примерно так,
скрипт стартует в теневом режиме и работает как демон
на мой взгляд интервал в 10сек. достаточен задержки практически незаметны

#!/bin/bash
COUNTER=1
INTERVAL=10
while [  $COUNTER -lt 2 ]; do
   $BPATHW/MyBilling.sh
    if [[ -f "$BPATHW/MyBilling.pid" ]] ; then
    COUNTER=1
    /bin/sleep $INTERVAL
    else
    COUNTER=2
    fi
done


"Запуск программы из apache+php"
Отправлено VArtem , 22-Авг-07 00:57 
Спасибо, будем пробовать.
А как запустить программу в теневом режиме?

"Запуск программы из apache+php"
Отправлено DogEater , 22-Авг-07 11:25 
>[оверквотинг удален]
>INTERVAL=10
>while [  $COUNTER -lt 2 ]; do
>   $BPATHW/MyBilling.sh
>    if [[ -f "$BPATHW/MyBilling.pid" ]] ; then
>    COUNTER=1
>    /bin/sleep $INTERVAL
>    else
>    COUNTER=2
>    fi
>done

а я бы через unix сокет сделал, но если лень то и так сойдёт