safe_exec --- вопрос
Модератор: immortal
-
- Сообщения: 64
- Зарегистрирован: Пт фев 21, 2014 10:56 am
- Откуда: Днепропетровск
- Благодарил (а): 1 раз
- Поблагодарили: 5 раз
safe_exec --- вопрос
Как при помощи safe_exec не просто запустить стороннюю программу, как бы из командной строки, а еще и записать в переменную ответ этой программы (я имею ввиду консольные программы и вывод из этих программ в консоль) ?
Я настроил выключение удаленного компа при помощи net rpc, но столкнулся с тем, что комманда выключения срабатывает не всегда, но если запускать из консоли, то выдает ошибку, почему не отработала комманда. Хотелось бы при запуске через 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 --- вопрос
сорри, сейчас нет механизма обратной связи от safe_exec -- эти команды попадают в очередь, исполняются в отдельном потоке (код сценария выполняется дальше, не дожидаясь окончания работы внешней программы) и удаляются без сохранения результата выполнения.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: safe_exec --- вопрос
ага а вот теперь у меня возник вопрос:
необходимо средствами PHP из MDM узнать запущена-ли (открыто окно) определенная программа, например: wifiaudio.exe
наиболее просто, как мне кажется, было бы таким образом - запустить это:
и получить ответ от safe_exec
если ошибка, то программа не запущена
но походу safe_exec ни чего не возвращает!
тогда как поступить?
можно конечно через AutoIt попробовать... но это как-то не красиво получиться (костыли)!
необходимо средствами PHP из MDM узнать запущена-ли (открыто окно) определенная программа, например: wifiaudio.exe
наиболее просто, как мне кажется, было бы таким образом - запустить это:
Код: Выделить всё
safe_exec('tasklist.exe /fi "IMAGENAME eq wifiaudio.exe" | find /i "wifiaudio.exe"');
если ошибка, то программа не запущена
но походу safe_exec ни чего не возвращает!
тогда как поступить?
можно конечно через AutoIt попробовать... но это как-то не красиво получиться (костыли)!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
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 --- вопрос
Вместо safe_exec можно воспользоваться exec или system -- по сути тоже самое, только выполняется как процесс веб-сервера и может его "завалить" при некорректном использовании. Но если команда простая, то никаких проблем с этим не будет.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: safe_exec --- вопрос
У меня тоже имеется вопросик.
Почему команда формата
отрабатывает без проблем, а еще более простая команда формата
весит exec cycle, cmd при этом на компе не запускается, и больше ничего с exe-шниками не работает.
Вообще мне нужно запустить ярлык, в котором я прописал нужную команду, и дал ему нужные права. Из cmd, да и просто по дабл клику, он запускается отлично, из MD никак не могу. Ярлык лежит в \scripts\wc_start.lnk. Так же создал батник wc_start.bat. Пробовал запустить через exec, safe_exec и батник, и lnk - 0 реакции. В конце концов попытался запустить просто 'cmd', и то не запускается. Комп перезагружался неоднократно. Тут и решил что не так что то либо с логикой, либо с системой.
Почему команда формата
Код: Выделить всё
safe_exec('shutdown -s -t 0');
Код: Выделить всё
safe_exec('cmd');
Вообще мне нужно запустить ярлык, в котором я прописал нужную команду, и дал ему нужные права. Из cmd, да и просто по дабл клику, он запускается отлично, из MD никак не могу. Ярлык лежит в \scripts\wc_start.lnk. Так же создал батник wc_start.bat. Пробовал запустить через exec, safe_exec и батник, и lnk - 0 реакции. В конце концов попытался запустить просто 'cmd', и то не запускается. Комп перезагружался неоднократно. Тут и решил что не так что то либо с логикой, либо с системой.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: safe_exec --- вопрос
попробуй сделать батник (файл с расширением .bat или .cmd) в нем напиши что тебе нужно и выполняй так
safe_exec('c:\file.cmd'); к примеру
либо полный путь до cmd.exe используй в виде c:\Windows\System32\cmd.exe
так же, можно попробовать такой вариант с передачей доп параметров
safe_exec('c:\Windows\System32\cmd.exe [param]');
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 --- вопрос
Батник я делал. И по сокращенному пути (safe_exec('\scripts\wc_start.bat');) и по полному (с диска с) запускал...просто виснет цикл.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 119
- Зарегистрирован: Пн авг 24, 2015 11:24 am
- Откуда: Сочи
- Благодарил (а): 4 раза
- Поблагодарили: 14 раз
Re: safe_exec --- вопрос
ну тут явно присутствует какая-то небольшая хитрость, сам проверить не могу так как юзаю MJD на Debiannick7zmail писал(а):Батник я делал. И по сокращенному пути (safe_exec('\scripts\wc_start.bat');) и по полному (с диска с) запускал...просто виснет цикл.
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: safe_exec --- вопрос
cmd открывает консоль и оставляет ее так.
Попробуйте запускать cmd с параметром /c, тогда после выполнения команд консоль должна закрыться.
Еще можно попробовать запускать через start.
Попробуйте запускать cmd с параметром /c, тогда после выполнения команд консоль должна закрыться.
Еще можно попробовать запускать через start.
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: safe_exec --- вопрос
Со start вариант попробую. А с cmd в том то и дело что она даже не открывается. Это то и смутило.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<