Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужно вызвать httpd graceful из скрипта 
V
    Опции темы
CTYDEHT
Дата 12.1.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2004
Где: Восточная Европа

Репутация: нет
Всего: нет



Имеется скрипт perl, который должен перегрузить httpd.conf.

Но при вызове system ("httpd graceful"); ничего не происходит, не ошибки, ни перезагрузки...

Я думаю, может какая-то проблема с правами?
PM MAIL ICQ YIM MSN   Вверх
DENNN
Дата 12.1.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 2
Всего: 43



А почему не
apachectl restart
?
PM ICQ   Вверх
CTYDEHT
Дата 12.1.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2004
Где: Восточная Европа

Репутация: нет
Всего: нет



DENNN, ну во первых вот например при таком вводе дает такой вывод, т.е. при запросе через SSH команды apachectl меня посылает на httpd и при вводе apachectl ничего не происходи и по больщому счету это то же самое.

Код

root@sr1 [~]# apachectl
usage: /usr/sbin/httpd (start|stop|restart|fullstatus|status|graceful|configtest|help)

start      - start httpd
startssl   - start httpd with SSL enabled
stop       - stop httpd
restart    - restart httpd if running by sending a SIGHUP or start if
             not running
fullstatus - dump a full status screen; requires lynx and mod_status enabled
status     - dump a short status screen; requires lynx and mod_status enabled
graceful   - do a graceful restart by sending a SIGUSR1 or start if not running
configtest - do a configuration syntax test
help       - this screen

root@sr1 [~]#



А во вторых я попробовал вызвать apachectl restart через скрипт, но также ничего не произошло... а вот после вызова такого кода:

Код

#!/usr/local/bin/perl -w
use strict;
print "Content-type: text/html\n\n";
my @content = `httpd graceful 2>&1 &`;
print 'Content:<br>', join "<br>\n", @content; 


выдало такое:

Код

Content:
sh: line 1: httpd: command not found 


С чего бы это?

Это сообщение отредактировал(а) CTYDEHT - 12.1.2006, 18:21
PM MAIL ICQ YIM MSN   Вверх
Sun
Дата 13.1.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 2
Всего: 48



Graceful restart происходит когда процессам httpd передается сигнал HUP. Можно даже так

killall -HUP httpd

Не бойтесь комманды killall. Она всего лишь посылает сигнал HUP всем процессам httpd.
Цитата(CTYDEHT @ 12.1.2006, 14:56 Найти цитируемый пост)

Content:
sh: line 1: httpd: command not found

С чего бы это?


С того что путь к httpd надо указать.


--------------------
Account removed
PM MAIL   Вверх
CTYDEHT
Дата 13.1.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2004
Где: Восточная Европа

Репутация: нет
Всего: нет



Существует ли возможность сделать так, чтоб какой-то определенный скрипт запускался от имени определенного пользователя (или скрипты определенного аккаунта на сервере), а все остальные по прежнему от nobody:nobody? Тогда я бы ског настроить sudo...
PM MAIL ICQ YIM MSN   Вверх
Sun
Дата 13.1.2006, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: 2
Всего: 48



Делаем так, в файле /etc/sudoers пишем
nobody ALL = NOPASSWD:path_to_my_admin_script.pl the_secret_word

Где path_to_my_admin_script.pl путь к скрипту который будет выполнять перезагрузку. В качестве параметра он будет прнимать секретное слово. Если оно будет равно the_secret_word, то производим перезагрузку, если нет то ничего не делаем.

Дальше ты в своем CGI скрипте вставляешь вызов

`sudo path_to_my_admin_script.pl the_secret_word`

и радуешься жизни


--------------------
Account removed
PM MAIL   Вверх
CTYDEHT
Дата 14.1.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2004
Где: Восточная Европа

Репутация: нет
Всего: нет



Попытался я настроить sudoers следующим образом

nobody ALL=NOPASSWD: /usr/sbin/httpd graceful secword

а мне выдало Sorry, sudo must be setuid root.

Я подумал, что я сделал что-то не так, но то же сообщение было и после:

nobody ALL=NOPASSWD: /usr/sbin/httpd graceful secword
nobody ALL=NOPASSWD: /usr/sbin/httpd graceful
nobody localhost=NOPASSWD: /usr/sbin/httpd graceful

и даже после:

nobody ALL=(ALL) ALL


Люди, кто пользовался sudo, подскажите, в чем может быть косяк???
PM MAIL ICQ YIM MSN   Вверх
CTYDEHT
Дата 15.1.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.10.2004
Где: Восточная Европа

Репутация: нет
Всего: нет



Проблема решилась.

Спасибо всем, кто помог.


Sudo не работал потому что не получал ID текущего юзера. Нужно было выставить права `chmod 4111 /usr/bin/sudo`. Тогда в sudoers нужно указывать не nobody, а имя юзера на чьем аккаунте выполняется скрипт.

Это сообщение отредактировал(а) CTYDEHT - 16.1.2006, 09:26
PM MAIL ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0703 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.