Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Ubuntu server, перезапуск сервиса приложением  (Прочитано 4243 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 617
    • Просмотр профиля
Тогда: загрузиться с флешки, примонтировать системный диск (можно в программе с графическим интерфейсом, типа GNOME Disks), посмотреть точку монтирования, которая была ему назначена.

благодарю, пробую.

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Соответственно в веб-ресурсе (умный дом мажордомо) есть скрипт с содержимым:
//перезагрузка циклов
echo shell_exec( 'sudo /var/www/restart.sh' );

И ещё вопрос, эта команда у умного дома по умолчанию была прописана? Здесь sudo вроде бы не должен использоваться, т.к. не должно быть у апача таких прав, я бы попробовал заменить на:
echo shell_exec( '/var/www/restart.sh' );(после того, как удалите из restart.sh лишние строки)
Debian 11, Debian 11 Server

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Цитировать
sudo service majordomo restart
зачем запускает? что у вас service плохой загрузка?
Wars ~.o

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 617
    • Просмотр профиля
Решил проблему кардинально - clonezila + рабочий бекап. Я начинаю осознавать полезность бекапов :)

Но все же. Плиз разжуйте неучу, чтобы опять систему на лопатки не положил.
Нужно: иногда циклы majordomo падают. В системе нет механизма их поднять (может я не там смотрю). Поэтому я мажордомом в случае падения цикла я могу дернуть скрипт (как мне подсказали выше):
echo shell_exec( '/var/www/restart.sh' );
В этом restart.sh должна быть прописана команда рестарта сервиса мажора.
если я через консоль убунты делаю:
yyyy@mjd:~$ service majordomo restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Чтобы перезапустить «majordomo.service», необходимо пройти аутентификацию.
Authenticating as: yyyy,,, (yyyy)
Password:
==== AUTHENTICATION COMPLETE ===
То после ввода пароля пользователя уууу сервис рестартует и циклы поднимаются.

Вот мне и нужно, чтобы мажор давал команду рестарта сервиса. Может будет какое-то более красивое и рациональное решение этой проблемы.
Но знаний не хватает, как выше видно было неумелые ручки привели к падению убунты.

благодарю

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Попытаюсь объяснить:
у пользователя www-data, под которым работает "мажордомо", нет, и не должно быть, прав администратора, которые позволяли бы ему в том числе перезапускать сервисы.
Однако мы можем дать ему право только управлять сервисами, с этим не должно быть проблем. Причём это надо обязательно делать без пароля, иначе кто будет его вводить?
Подробнее о том, как это сделать, написано тут.

Чтобы ничего не сломать, нужно использовать только команду sudo EDITOR=nano visudo.

Об этом написано чуть выше на той же странице.

Итак, какую строчку нужно добавить в /etc/sudoers , чтобы дать право пользователю www-data управлять сервисами без пароля?
Для начала выясним, где "лежит" команда service
$ which service
/usr/sbin/service
У меня - в /usr/sbin/service . У вас, вероятнее всего, тоже. Можете проверить.

Затем с помощью
sudo EDITOR=nano visudoдобавляем строку в конец файла (в конце - наивысший приоритет):
www-data ALL= NOPASSWD: /usr/sbin/serviceздесь:
www-data - пользователь
ALL - разрешение выполнять на любой "машине"
NOPASSWD - без пароля
/usr/sbin/service - только эту программу

сохраняем (Ctrl + O и Enter)
выходим (Ctrl + X)
у меня система перезагрузилась и ошибок нет



Пользователь добавил сообщение 08 Мая 2019, 19:28:13:
И я немного перемудрил с содержимым файла restart.sh
Там должно быть:

#!/bin/bash

sudo service majordomo restart
« Последнее редактирование: 08 Мая 2019, 19:28:13 от m-svo »
Debian 11, Debian 11 Server

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 617
    • Просмотр профиля
Не хочет.
Сделал все как Вы указали - один в один. Не перезапускает.
Если вручную
sudo service majordomo restartв терминале, то без запроса пароля выполняет, сервис перезапускается.

Пользователь добавил сообщение 08 Мая 2019, 20:03:25:
Однако получилось.
В мажордомо скрипт:
//перезагрузка циклов
echo shell_exec( 'sudo service majordomo restart' );
Сервис начал рестартовать.
Проверил принудительной остановкой почти главного цикла в мажоре - сервис рестартовал и остановленный цикл поднялся. Так же мягко (с сохранением базы mysql) перегрузил Ubuntu. После перезагрузки циклы мажора упали (именно по этой причине затеял все это - с какого-то обновления мажора после перезагрузки всего сервера или его выкл\вкл, циклы не стартовали. Только вручную через терминал убунты все восстанавливалось. Согласитесь, это не айс), потом мажор дернул скрипт перезапуска (причем два раза, видно по логам мажора) и сервис и вместе с ним и циклы мажора перезапустились.
Понаблюдаю.


Пользователь добавил сообщение 08 Мая 2019, 20:04:20:
Попытаюсь объяснить:
у пользователя www-data, под которым работает "мажордомо", нет, и не должно быть, прав администратора, которые позволяли бы ему в том числе перезапускать сервисы.
Однако мы можем дать ему право только управлять сервисами, с этим не должно быть проблем. Причём это надо обязательно делать без пароля, иначе кто будет его вводить?
Подробнее о том, как это сделать, написано тут.

Вам огромная благодарность :) Реально помогли, спасибо.
Удачи вам и вашей семье.
« Последнее редактирование: 08 Мая 2019, 20:04:20 от YDenis »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
echo shell_exec( 'sudo /var/www/restart.sh' );

/etc/sudoers.d/90-cloudimg-www-data
www-data ALL=(ALL) NOPASSWD:/var/www/restart.sh
Wars ~.o

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
victor00000, а ты не задолбал гадить на форуме?
YDenis, все файлы в каталоге /etc/sudoers.d/ нужно редактировать через visudo - как минимум избежите дурацких ошибок.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
AnrDaemon,
(Нажмите, чтобы показать/скрыть)
Wars ~.o

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.