Страница 1 из 1
Под кем выполняется exec и safe_exec
Добавлено: Вс фев 05, 2017 5:58 pm
DAP
Вопрос под кем выполняется exec и safe_exec на linux, конкретно RasPi 3?
делаю сценарий с кодом :
код успешно выключает звук нужного sink'a, а если код вставить в кнопку - звук не отключается.
ЗЫ
Команда сработает только от pi.
Re: Под кем выполняется exec и safe_exec
Добавлено: Вс фев 05, 2017 8:01 pm
ipz
Команда запустится от того пользователя, который запускает сервис majordomo.
У меня www-data, например. Проверить можно:
Re: Под кем выполняется exec и safe_exec
Добавлено: Вт фев 07, 2017 10:21 am
DAP
можно ли выполнить некую команду от рута, если да то как ?
например
Код: Выделить всё
safe_exec ('sudo service ser2net restart');
не срабатывают
Re: Под кем выполняется exec и safe_exec
Добавлено: Вт фев 07, 2017 11:44 am
dmw
1) дать права запуска ser2net не только root-у:
тогда можно запускать без sudo:
2) sudo требует ввода root пароля, поэтому просто exec ('sudo ...'); нельзя
Чтобы разрешить sudo для пользователя www-data не спрашивать пароль, нужно в файле /etc/sudoers добавить:
тогда можно запускать так:
Код: Выделить всё
safe_exec ('sudo /etc/init.d/ser2net restart');
Re: Под кем выполняется exec и safe_exec
Добавлено: Вт фев 07, 2017 2:07 pm
DAP
благодарю, пока прибил гвоздями добавив в cron перезапуск каждые 5 минут
Re: Под кем выполняется exec и safe_exec
Добавлено: Ср фев 08, 2017 12:22 am
DAP
отвечу сам себе комментарием разработчика
exeс("..."); -- запускает команду от имени веб-сервера
safe_exec("..."); -- запускает команду от имени основного цикла (чтобы вдруг не "завалить" сервер, особенно в windows-актуально и при запуске неконсольных приложений)
Re: Под кем выполняется exec и safe_exec
Добавлено: Ср фев 08, 2017 12:44 am
ipz
Странно, у меня все запускается от www-data, хотя первая строка в выводе - root запускает php от имени www-data (если я ничего не путаю...):
Код: Выделить всё
ps axu | grep cycle | grep -v grep
root 22800 0.0 0.3 9504 3204 ? S фев07 0:00 sudo -u www-data php /var/www/cycle.php
www-data 22806 0.9 3.3 97652 32172 ? S фев07 0:57 php /var/www/cycle.php
www-data 22812 0.0 2.9 94416 28412 ? S фев07 0:02 php -q ./scripts/cycle_rss.php --params a:0:{}
www-data 22814 0.0 3.0 94416 28480 ? S фев07 0:04 php -q ./scripts/cycle_execs.php --params a:0:{}
www-data 22815 0.2 3.0 95276 29324 ? S фев07 0:12 php -q ./scripts/cycle_ping.php --params a:0:{}
www-data 22816 0.1 3.1 96172 30164 ? S фев07 0:11 php -q ./scripts/cycle_bluetooth.php --params a:0:{}
www-data 22817 2.6 3.1 95556 29664 ? S фев07 2:39 php -q ./scripts/cycle_websockets.php --params a:0:{}
www-data 22820 0.0 3.0 94416 28588 ? S фев07 0:02 php -q ./scripts/cycle_webvars.php --params a:0:{}
www-data 22821 0.0 3.0 94772 28540 ? S фев07 0:02 php -q ./scripts/cycle_watchfolders.php --params a:0:{}
www-data 22827 0.2 3.0 94780 29268 ? S фев07 0:13 php -q ./scripts/cycle_main.php --params a:0:{}
www-data 22831 0.9 3.0 95032 29060 ? S фев07 0:57 php -q ./scripts/cycle_mysensor.php --params a:0:{}
www-data 22833 0.1 3.0 94772 29064 ? S фев07 0:08 php -q ./scripts/cycle_scheduler.php --params a:0:{}
www-data 22835 0.3 3.0 94772 28708 ? S фев07 0:20 php -q ./scripts/cycle_states.php --params a:0:{}
Кто-то писал skysilver (?) в теме про запуск бекапа, что save_exec запускает команду отдельным процессом... Т.образом, если это тяжелый или длительный по времени процесс, то он не застопорит основную систему, будет выполняться как-бы параллельно.
Re: Под кем выполняется exec и safe_exec
Добавлено: Чт фев 09, 2017 8:42 am
Majdomko
dmw писал(а):1) дать права запуска ser2net не только root-у:
тогда можно запускать без sudo:
2) sudo требует ввода root пароля, поэтому просто exec ('sudo ...'); нельзя
Чтобы разрешить sudo для пользователя www-data не спрашивать пароль, нужно в файле /etc/sudoers добавить:
тогда можно запускать так:
Код: Выделить всё
safe_exec ('sudo /etc/init.d/ser2net restart');
Спасибо тебе добрый человек ! Надо бы такие ответы в шапке закрепить, очень полезно
