Страница 1 из 2
safe_exec --- вопрос
Добавлено: Пн июн 23, 2014 6:27 pm
vova5049
Как при помощи safe_exec не просто запустить стороннюю программу, как бы из командной строки, а еще и записать в переменную ответ этой программы (я имею ввиду консольные программы и вывод из этих программ в консоль) ?
Я настроил выключение удаленного компа при помощи net rpc, но столкнулся с тем, что комманда выключения срабатывает не всегда, но если запускать из консоли, то выдает ошибку, почему не отработала комманда. Хотелось бы при запуске через safe_exec, также видеть ошибки, что бы можно было их обрабатывать.
Re: safe_exec --- вопрос
Добавлено: Пн июн 23, 2014 6:38 pm
sergejey
сорри, сейчас нет механизма обратной связи от safe_exec -- эти команды попадают в очередь, исполняются в отдельном потоке (код сценария выполняется дальше, не дожидаясь окончания работы внешней программы) и удаляются без сохранения результата выполнения.
Re: safe_exec --- вопрос
Добавлено: Вт мар 24, 2015 8:50 am
Vovix
ага а вот теперь у меня возник вопрос:
необходимо средствами PHP из MDM узнать запущена-ли (открыто окно) определенная программа, например:
wifiaudio.exe
наиболее просто, как мне кажется, было бы таким образом - запустить это:
Код: Выделить всё
safe_exec('tasklist.exe /fi "IMAGENAME eq wifiaudio.exe" | find /i "wifiaudio.exe"');
и получить ответ от
safe_exec
если ошибка, то программа не запущена
но походу
safe_exec ни чего не возвращает!
тогда как поступить?
можно конечно через AutoIt попробовать... но это как-то не красиво получиться (костыли)!
Re: safe_exec --- вопрос
Добавлено: Вт мар 24, 2015 11:23 am
sergejey
Вместо safe_exec можно воспользоваться exec или system -- по сути тоже самое, только выполняется как процесс веб-сервера и может его "завалить" при некорректном использовании. Но если команда простая, то никаких проблем с этим не будет.
Re: safe_exec --- вопрос
Добавлено: Пн авг 31, 2015 11:09 am
nick7zmail
У меня тоже имеется вопросик.
Почему команда формата
отрабатывает без проблем, а еще более простая команда формата
весит exec cycle, cmd при этом на компе не запускается, и больше ничего с exe-шниками не работает.
Вообще мне нужно запустить ярлык, в котором я прописал нужную команду, и дал ему нужные права. Из cmd, да и просто по дабл клику, он запускается отлично, из MD никак не могу. Ярлык лежит в \scripts\wc_start.lnk. Так же создал батник wc_start.bat. Пробовал запустить через exec, safe_exec и батник, и lnk - 0 реакции. В конце концов попытался запустить просто 'cmd', и то не запускается. Комп перезагружался неоднократно. Тут и решил что не так что то либо с логикой, либо с системой.
Re: safe_exec --- вопрос
Добавлено: Пн авг 31, 2015 2:06 pm
GreatBAO
попробуй сделать батник (файл с расширением .bat или .cmd) в нем напиши что тебе нужно и выполняй так
safe_exec('c:\file.cmd'); к примеру
либо полный путь до cmd.exe используй в виде c:\Windows\System32\cmd.exe
так же, можно попробовать такой вариант с передачей доп параметров
safe_exec('c:\Windows\System32\cmd.exe [param]');
Re: safe_exec --- вопрос
Добавлено: Пн авг 31, 2015 2:20 pm
nick7zmail
Батник я делал. И по сокращенному пути (safe_exec('\scripts\wc_start.bat');) и по полному (с диска с) запускал...просто виснет цикл.
Re: safe_exec --- вопрос
Добавлено: Пн авг 31, 2015 2:26 pm
GreatBAO
nick7zmail писал(а):Батник я делал. И по сокращенному пути (safe_exec('\scripts\wc_start.bat');) и по полному (с диска с) запускал...просто виснет цикл.
ну тут явно присутствует какая-то небольшая хитрость, сам проверить не могу так как юзаю MJD на Debian
Re: safe_exec --- вопрос
Добавлено: Пн авг 31, 2015 2:53 pm
olehs
cmd открывает консоль и оставляет ее так.
Попробуйте запускать cmd с параметром /c, тогда после выполнения команд консоль должна закрыться.
Еще можно попробовать запускать через start.
Re: safe_exec --- вопрос
Добавлено: Пн авг 31, 2015 2:55 pm
nick7zmail
Со start вариант попробую. А с cmd в том то и дело что она даже не открывается. Это то и смутило.