LinuxForum.Fans
Тема

Перезапуск сервера через php скрипт

Автор: XliN 11 сообщений 2726 просмотров
#353659

Нужно удаленно перезапускать сервер.
Имеем скрипт на php cправами

text
Доступ: (4755/-rwsr-xr-x)  Uid: (  496/   nginx)   Gid: (  493/   nginx)
text
<?php
shell_exec("/usr/bin/sudo /usr/sbin/shutdown -r now");
?>

в /etc/sudores добавил запись

text
nginx  localhost=/sbin/shutdown -r now

если с консоли написать php reboot.php, то сервер уйдет в ребут, но мне надо из бракзера.

Захожу в боаузере на нужную страничку, но сервер не перезапускается. В логах тоже ничего не пишется.

#354031

под apache2 у меня так же было, вылечилось установлением прав администратору пользователю, из под которого запускался apache2. Либо установкой соотвествующего флаг на данный bin файл

#354046

dimka541, Ну так как все же решить этот вопрос? Проблема в том, что отваливается ssh и люди не могут попасть на сервер. Перезапустить могу только я.

#354053
"XliN" написал:
Проблема в том, что отваливается ssh

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

#354132

Перезагружать сервер из-за упавшего демона - это даже не пять, а все семь из пяти.

"-=Serj=-" написал:
Я думаю, стоит решить именно эту проблему.

Поддерживаю.

#354134
"neol" написал:
Перезагружать сервер из-за упавшего демона

Демон так падает, что не зайти вообще на сервер. Даже если перезапустить sshd, то ситуация с недоступностью остается.

"neol" написал:
это даже не пять, а все семь из пяти.

А есть другой вариант? Если я доступен не всегда, а разработка идет. Вот и хочется сделать именно перезапуск сервера, т.к только это решает проблему быстро.

#354140
"XliN" написал:
А есть другой вариант?

Это же элементарно. Надо решить проблему.
ssh просто так не падает. А судя по

"XliN" написал:
Даже если перезапустить sshd, то ситуация с недоступностью остается.

есть ненулевая вероятность, что он вообще не падает, а блокируется какой-нибудь поделкой типа fail2ban.

#354141

Fail2ban? Падает демон, похоже, от чрезмерной загрузки подбираль щиками паролей :-)
UPD: neol, а что с f2b не так? Почему поделка?

#354145
"yars" написал:
UPD: neol, а что с f2b не так? Почему поделка?

В высказывании нет негативной окраски, просто синоним для не очень цензурного слова (=

#354151

fail2ban? У меня ssh висит на не стандартном порту. И если fail2ban блокировал бы, то он просто не пускал бы на сервер, а не подвисал с ошибкой, что то про PTY

#354183

Не может эта "ошибка про PTY" быть связана с недостатком pty на сервере? Мб у вас разрабы настолько жесткие, что выедают их все? :)
[console]cat /proc/sys/kernel/pty/*[/console]
А sudo без терминала так и не будет работать - sudo так же требует tty. Отправьте stderr команды из php-скрипта в лог, увидите что команда не работает из-за sudo:
[console]
$ ssh web 'sudo cat /etc/passwd'
sudo: sorry, you must have a tty to run sudo
[/console]
Эт примерно то же самое, что и выполнение shutdown-а из php-скрипта запросом по http.

Если же трабл с запуском shutdown-а из php-скрипта имеет место быть из-за tty, то его можно решить убрав и /etc/sudoers строку


Defaults requiretty

После этого все отрабатывает нормально:
[console]
$ ssh web 'sudo cat /etc/passwd'
место для вашей рекламы
[/console]

Имхо, верное решение - починить ssh.

Войдите или зарегистрируйтесь, чтобы ответить.