Страница 1 из 3

Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Пн июл 20, 2015 3:47 pm
Ivan
1. Создаём скрипт, например "restart_md"

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

echo shell_exec( 'sudo /var/www/restart.sh' ); 
2. Создаём файл в корень /var/www/restart.sh

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

#!/bin/bash

service majordomo restart
3. Устанавливаем на него права

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

sudo chmod -R 755 /var/www/restart.sh
4. Чтобы скрипт запускался от пользователя www-data с правами root нужно в файл /etc/sudoers добавить строчку

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

www-data ALL=(root) NOPASSWD: /var/www/restart.sh
Сам файл "Upstart init daemon job configuration" описанный в "Основной цикл Вариант 2 (например для Ubuntu)"
СпойлерПоказать

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

sudo nano /etc/init/majordomo.conf

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

description     "MajorDoMo"
author          "http://smartliving.ru"

start on runlevel [2345]
stop on runlevel [!2345]

console none
respawn

script
  exec /usr/bin/php /var/www/cycle.php
end script
Теперь запуская скрипт "restart_md". У вас будут перезапускаться циклы

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Вт июл 21, 2015 9:26 am
skysilver
Для полноты картины не хватает исходника самого upstart-скрипта запуска/остановки циклов majordomo. ;)

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Вт июл 21, 2015 10:05 am
Ivan
Для полноты "Квадрата Малевича" добавил рамочку :)

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Пт дек 18, 2015 11:25 am
Amarok
А как этот сценарий выполнять автоматически? Ну, к примеру, цикл main упал и система сама выполнила sudo restart majordomo.

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Пт дек 18, 2015 3:45 pm
Anton_kulibin
Amarok писал(а):А как этот сценарий выполнять автоматически? Ну, к примеру, цикл main упал и система сама выполнила sudo restart majordomo.
На сколько я знаю, main сам рестартует после падения. Ну сколько я замечал у себя.

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Пт дек 18, 2015 4:15 pm
Amarok
Не всегда(

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Пт дек 18, 2015 4:36 pm
savenko_egor
Amarok писал(а):А как этот сценарий выполнять автоматически? Ну, к примеру, цикл main упал и система сама выполнила sudo restart majordomo.
Можно сделать чтобы этот скрипт запускался при старте системы и висел в режиме сна, просыпался в определённое время (например каждые 10 минут), проверял запущен ли главный цикл (ps ax | grep 'cycle_main.php') и выполнял что нужно. Если цикла нет, значит запуск, если цикл есть в сон до следующего раза.

Это же Linux. Вороти - не хочу :D

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Сб дек 19, 2015 7:20 am
Amarok
Я с пингвинами -- полный дурак ещё(
Потому и спрашиваю :)

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Вт фев 16, 2016 10:44 pm
devoff
на удивление, у меня заработало прям из МЖД через PHP -
просто команда -

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

 safe_exec ('sudo service majordomo restart'); 
таким же путем даже смог перезагрузить систему -

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

safe_exec ('sudo reboot'); 

Re: Перезапуск циклов по кнопке (linux Upstart init daemon)

Добавлено: Ср фев 17, 2016 6:56 pm
Ivan
Значит у вас www запущен от рута. А это не безопасно.