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

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

Модератор: immortal

Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

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

Сообщение Ivan » Пн июл 20, 2015 3:47 pm

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". У вас будут перезапускаться циклы
За это сообщение автора Ivan поблагодарили (всего 5):
zverev.sv (Пн июл 20, 2015 4:29 pm) • Otto (Вт май 03, 2016 11:04 am) • PAV (Ср май 25, 2016 4:55 pm) • sirius23 (Сб сен 17, 2016 8:01 pm) • sergei64 (Сб апр 18, 2020 2:43 am)
Рейтинг: 5.81%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Вт июл 21, 2015 9:26 am

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

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

Сообщение Ivan » Вт июл 21, 2015 10:05 am

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

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

Сообщение Amarok » Пт дек 18, 2015 11:25 am

А как этот сценарий выполнять автоматически? Ну, к примеру, цикл main упал и система сама выполнила sudo restart majordomo.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

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

Сообщение Anton_kulibin » Пт дек 18, 2015 3:45 pm

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

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

Сообщение Amarok » Пт дек 18, 2015 4:15 pm

Не всегда(
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

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

Сообщение savenko_egor » Пт дек 18, 2015 4:36 pm

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

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

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

Сообщение Amarok » Сб дек 19, 2015 7:20 am

Я с пингвинами -- полный дурак ещё(
Потому и спрашиваю :)
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
devoff
Сообщения: 181
Зарегистрирован: Пт апр 04, 2014 10:17 pm
Благодарил (а): 37 раз
Поблагодарили: 54 раза

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

Сообщение devoff » Вт фев 16, 2016 10:44 pm

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

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

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

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

safe_exec ('sudo reboot'); 
За это сообщение автора devoff поблагодарил:
PAV (Ср май 25, 2016 4:55 pm)
Рейтинг: 1.16%
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

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

Сообщение Ivan » Ср фев 17, 2016 6:56 pm

Значит у вас www запущен от рута. А это не безопасно.
За это сообщение автора Ivan поблагодарил:
sirius23 (Сб сен 17, 2016 8:02 pm)
Рейтинг: 1.16%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ответить