Ребут апача php скриптом

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-18 22:13:02

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

<?
system("/usr/local/bin/sudo -b /usr/local/etc/rc.d/apache restart");
?>
- апач просто останавливается

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

<?
system("/usr/local/bin/sudo -b sh apacherestart.sh");
?>
- ребутает апач ( в apacherestart.sh строка /usr/local/etc/rc.d/apache restart )

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

<?
if (isset($_POST['add_domain']))
{
system("/usr/local/bin/sudo -b sh apacherestart.sh");
}
?>
- апач просто останавливается...

вопрос: почему?

P.S. Это результаты запуска через браузер, через консолько все варианты работают.

Хостинговая компания 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/

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-18 22:55:49

а как вы думаете от какого пользователя исполняется cgi?

p.s. еще бы не stderror выводить в фаил
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-18 23:06:53

thefree писал(а):а как вы думаете от какого пользователя исполняется cgi?

p.s. еще бы не stderror выводить в фаил
Я бы понял, если бы делал stop а потом старт, а так что-то не врубаюсь.
"P.S." не совсем понял. Все кроме ошибок выводить в файл?


Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-19 9:05:40

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

system("/usr/local/bin/sudo -b sh apacherestart.sh > out.log");
И посмотрите и за чего не поднимается апач.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-19 9:15:40

thefree писал(а):

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

system("/usr/local/bin/sudo -b sh apacherestart.sh > out.log");
И посмотрите и за чего не поднимается апач.
Stopping apache.

В httpd-error.log:

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

[notice] caught SIGTERM, shutting down

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Ребут апача php скриптом

Непрочитанное сообщение ProFTP » 2010-07-19 11:53:20

попробовать:

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

system("/usr/local/bin/sudo -b sh /usr/local/etc/rc.d/apache22 restart");
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Ребут апача php скриптом

Непрочитанное сообщение ProFTP » 2010-07-19 12:04:25

фигня скорее всего в том что скрипт /usr/local/etc/rc.d/apache не может перегрузить демона

этот скрипт может /usr/local/etc/rc.d/apache22 он ждет пока демон вырубиться вообще, а потом перезапускае...

т.е. скрипт демона вырубил, начинает запускать, а запустить не может потому что он еще не вырубился, может порт 80 еще занят, и по этому вываливается
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-19 12:14:34

Он должен был бы при этом в лог ругаться

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Ребут апача php скриптом

Непрочитанное сообщение ProFTP » 2010-07-19 13:55:31

попробуй форкнуть

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

system("/usr/local/bin/sudo -b /usr/local/etc/rc.d/apache restart &");
в книге был пример скрипта для управлениея демоном, перезагрузка его, скрипт был на perl
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: Ребут апача php скриптом

Непрочитанное сообщение ADRE » 2010-07-19 17:16:47

для того, чтобы корректно рестартануть надо чтоб время выполнения скрипта было больше времени рестарта, т.к. оно рестартит всяко долго суйте & в конец строки перезапуска иначе вебморда и будет дальше висеть и отваливаться по таймауту.
//del

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-19 17:38:58

ProFTP писал(а):попробуй форкнуть

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

system("/usr/local/bin/sudo -b /usr/local/etc/rc.d/apache restart &");
в книге был пример скрипта для управлениея демоном, перезагрузка его, скрипт был на perl

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

<?
system("/usr/local/bin/sudo -b /usr/local/etc/rc.d/apache restart &");
?>
Падает.

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-19 18:09:17

ересть какая то тут создается
1. засунь выполнение команды system в переменую
2. попробуй сделать рестарт через httpdctl
3. посмотри что у тебя в переменой
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

ViktorichZ
сержант
Сообщения: 152
Зарегистрирован: 2008-10-30 12:15:26

Re: Ребут апача php скриптом

Непрочитанное сообщение ViktorichZ » 2010-07-19 19:05:35

форкнуться надо для я этого
типа

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

/usr/bin/nohup /usr/local/bin/sudo -b sh apacherestart.sh &
Последний раз редактировалось f_andrey 2010-07-20 9:59:47, всего редактировалось 1 раз.
Причина: Автору, оформляйте сообщение по человечески.

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-20 9:23:42

вы почитайте про system, перед тем как писать надо форкатся или нет ...

И вообще выполните этот скрипт в консоли и посмотрите что получится.
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-20 9:32:10

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

/root>php apache.php
Performing sanity check on apache configuration:
Syntax OK
Stopping apache.
Waiting for PIDS: 4314.
Starting apache.
Launching... /usr/local/sbin/gcache
pid=4668
Launching... /usr/local/sbin/gcache
pid=4668
/root>cat apache.php
<?php
system("/usr/local/etc/rc.d/apache restart");
?>
/root>ps auxwww | grep htt
www    4671  1,3  2,1 18968 10724  ??  S    10:30     0:00,00 /usr/local/sbin/httpsd
www    4672  1,3  2,1 18968 10724  ??  S    10:30     0:00,00 /usr/local/sbin/httpsd
www    4673  1,3  2,1 18968 10724  ??  S    10:30     0:00,00 /usr/local/sbin/httpsd
www    4674  1,3  2,1 18968 10724  ??  S    10:30     0:00,00 /usr/local/sbin/httpsd
www    4675  1,3  2,1 18968 10724  ??  S    10:30     0:00,00 /usr/local/sbin/httpsd
root   4669  0,8  2,1 18968 10704  ??  Ss   10:30     0:00,11 /usr/local/sbin/httpsd
/root>
Где проблема?
проверти от какого пользователя у Вас Cgi и настройки sudo
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-20 10:48:57

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

system("touch /test/testfile.www");
system("/usr/local/bin/sudo -b  touch /test/testfile.sudo");

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

-rw-r--r--   1 root  wheel    0 Jul 20 07:41 testfile.sudo
-rw-r--r--   1 www   wheel    0 Jul 20 07:41 testfile.www

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

Где проблема?
Повторюсь, через консоль все работает.

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

Re: Ребут апача php скриптом

Непрочитанное сообщение zg » 2010-07-20 19:43:01

Ly писал(а):Повторюсь, через консоль все работает.
:smile: ну ну
Ly писал(а):вопрос: почему?
интересно что думает апач, когда его собственный модуль вдруг его же и останавливает? Думаю, как настоящий идеец, он конечно же остановится и по традиции потянет ВСЕ свои открытые процессы за собой. Когда все процессы умерли, кто запустит апач? Правильно, кто угодно, только не сам апач.

Чем не устраивает graceful?

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-20 21:54:19

zg писал(а):
Ly писал(а):Повторюсь, через консоль все работает.
:smile: ну ну
Ly писал(а):вопрос: почему?
интересно что думает апач, когда его собственный модуль вдруг его же и останавливает? Думаю, как настоящий идеец, он конечно же остановится и по традиции потянет ВСЕ свои открытые процессы за собой. Когда все процессы умерли, кто запустит апач? Правильно, кто угодно, только не сам апач.

Чем не устраивает graceful?
спорный вопрос ... т.к. perl'ом я гружу апач ... с веба
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

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

Re: Ребут апача php скриптом

Непрочитанное сообщение zg » 2010-07-21 5:44:55

thefree писал(а):т.к. perl'ом я гружу апач ... с веба
перл работает как mod_perl или как CGI? Если модулем, то это апач не будет запускаться, если как CGI, то вероятность есть.

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-21 8:04:27

zg писал(а):
thefree писал(а):т.к. perl'ом я гружу апач ... с веба
перл работает как mod_perl или как CGI? Если модулем, то это апач не будет запускаться, если как CGI, то вероятность есть.
cgi, но и пых моно как cgi
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
Ly
рядовой
Сообщения: 17
Зарегистрирован: 2010-07-05 20:31:27

Re: Ребут апача php скриптом

Непрочитанное сообщение Ly » 2010-07-21 10:46:11

Вопрос решил костылем, cgi юзать не хочется...

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: Ребут апача php скриптом

Непрочитанное сообщение thefree » 2010-07-21 11:36:05

Ly писал(а):Вопрос решил костылем, cgi юзать не хочется...
а что мешает один скрипт запустить как cgi?

и какой костыль?
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету