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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

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

Сообщение 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)"
SPOILERSPOILER_SHOW

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

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". У вас будут перезапускаться циклы
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Контактная информация:

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

Сообщение skysilver »

Для полноты картины не хватает исходника самого upstart-скрипта запуска/остановки циклов majordomo. ;)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

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

Сообщение Ivan »

Для полноты "Квадрата Малевича" добавил рамочку :)
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

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

Сообщение Amarok »

А как этот сценарий выполнять автоматически? Ну, к примеру, цикл main упал и система сама выполнила sudo restart majordomo.
Моя Алиска живёт на Proxmox в Debian 12
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия

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

Сообщение Anton_kulibin »

Amarok писал(а):А как этот сценарий выполнять автоматически? Ну, к примеру, цикл main упал и система сама выполнила sudo restart majordomo.
На сколько я знаю, main сам рестартует после падения. Ну сколько я замечал у себя.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

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

Сообщение Amarok »

Не всегда(
Моя Алиска живёт на Proxmox в Debian 12
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

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

Сообщение savenko_egor »

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

Это же Linux. Вороти - не хочу :D
Аватара пользователя
Amarok
Сообщения: 1434
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Контактная информация:

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

Сообщение Amarok »

Я с пингвинами -- полный дурак ещё(
Потому и спрашиваю :)
Моя Алиска живёт на Proxmox в Debian 12
devoff
Сообщения: 181
Зарегистрирован: Пт апр 04, 2014 10:17 pm

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

Сообщение devoff »

на удивление, у меня заработало прям из МЖД через PHP -
просто команда -

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

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

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

safe_exec ('sudo reboot'); 
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

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

Сообщение Ivan »

Значит у вас www запущен от рута. А это не безопасно.
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ответить