safe_exec --- вопрос

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

Модератор: immortal

vova5049
Сообщения: 64
Зарегистрирован: Пт фев 21, 2014 10:56 am
Откуда: Днепропетровск
Благодарил (а): 1 раз
Поблагодарили: 5 раз

safe_exec --- вопрос

Сообщение vova5049 » Пн июн 23, 2014 6:27 pm

Как при помощи safe_exec не просто запустить стороннюю программу, как бы из командной строки, а еще и записать в переменную ответ этой программы (я имею ввиду консольные программы и вывод из этих программ в консоль) ?

Я настроил выключение удаленного компа при помощи net rpc, но столкнулся с тем, что комманда выключения срабатывает не всегда, но если запускать из консоли, то выдает ошибку, почему не отработала комманда. Хотелось бы при запуске через safe_exec, также видеть ошибки, что бы можно было их обрабатывать.
2*MegaD328, Система на Raspberry Pi 2
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: safe_exec --- вопрос

Сообщение sergejey » Пн июн 23, 2014 6:38 pm

сорри, сейчас нет механизма обратной связи от safe_exec -- эти команды попадают в очередь, исполняются в отдельном потоке (код сценария выполняется дальше, не дожидаясь окончания работы внешней программы) и удаляются без сохранения результата выполнения.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: safe_exec --- вопрос

Сообщение Vovix » Вт мар 24, 2015 8:50 am

ага а вот теперь у меня возник вопрос:

необходимо средствами PHP из MDM узнать запущена-ли (открыто окно) определенная программа, например: wifiaudio.exe

наиболее просто, как мне кажется, было бы таким образом - запустить это:

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

safe_exec('tasklist.exe /fi "IMAGENAME eq wifiaudio.exe" | find /i "wifiaudio.exe"'); 
и получить ответ от safe_exec
если ошибка, то программа не запущена
но походу safe_exec ни чего не возвращает!

тогда как поступить?
можно конечно через AutoIt попробовать... но это как-то не красиво получиться (костыли)!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: safe_exec --- вопрос

Сообщение sergejey » Вт мар 24, 2015 11:23 am

Вместо safe_exec можно воспользоваться exec или system -- по сути тоже самое, только выполняется как процесс веб-сервера и может его "завалить" при некорректном использовании. Но если команда простая, то никаких проблем с этим не будет.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: safe_exec --- вопрос

Сообщение nick7zmail » Пн авг 31, 2015 11:09 am

У меня тоже имеется вопросик.
Почему команда формата

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

safe_exec('shutdown -s -t 0');
отрабатывает без проблем, а еще более простая команда формата

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

safe_exec('cmd');
весит exec cycle, cmd при этом на компе не запускается, и больше ничего с exe-шниками не работает.

Вообще мне нужно запустить ярлык, в котором я прописал нужную команду, и дал ему нужные права. Из cmd, да и просто по дабл клику, он запускается отлично, из MD никак не могу. Ярлык лежит в \scripts\wc_start.lnk. Так же создал батник wc_start.bat. Пробовал запустить через exec, safe_exec и батник, и lnk - 0 реакции. В конце концов попытался запустить просто 'cmd', и то не запускается. Комп перезагружался неоднократно. Тут и решил что не так что то либо с логикой, либо с системой.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи
Благодарил (а): 4 раза
Поблагодарили: 14 раз

Re: safe_exec --- вопрос

Сообщение GreatBAO » Пн авг 31, 2015 2:06 pm

попробуй сделать батник (файл с расширением .bat или .cmd) в нем напиши что тебе нужно и выполняй так
safe_exec('c:\file.cmd'); к примеру

либо полный путь до cmd.exe используй в виде c:\Windows\System32\cmd.exe
так же, можно попробовать такой вариант с передачей доп параметров
safe_exec('c:\Windows\System32\cmd.exe [param]');
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: safe_exec --- вопрос

Сообщение nick7zmail » Пн авг 31, 2015 2:20 pm

Батник я делал. И по сокращенному пути (safe_exec('\scripts\wc_start.bat');) и по полному (с диска с) запускал...просто виснет цикл.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи
Благодарил (а): 4 раза
Поблагодарили: 14 раз

Re: safe_exec --- вопрос

Сообщение GreatBAO » Пн авг 31, 2015 2:26 pm

nick7zmail писал(а):Батник я делал. И по сокращенному пути (safe_exec('\scripts\wc_start.bat');) и по полному (с диска с) запускал...просто виснет цикл.
ну тут явно присутствует какая-то небольшая хитрость, сам проверить не могу так как юзаю MJD на Debian
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: safe_exec --- вопрос

Сообщение olehs » Пн авг 31, 2015 2:53 pm

cmd открывает консоль и оставляет ее так.
Попробуйте запускать cmd с параметром /c, тогда после выполнения команд консоль должна закрыться.
Еще можно попробовать запускать через start.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: safe_exec --- вопрос

Сообщение nick7zmail » Пн авг 31, 2015 2:55 pm

Со start вариант попробую. А с cmd в том то и дело что она даже не открывается. Это то и смутило.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить