Помощь в php - shell_exec

Discussion in 'PHP' started by RaiDeRz, 22 May 2008.

Thread Status:
Not open for further replies.
  1. RaiDeRz

    RaiDeRz Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    121
    Likes Received:
    5
    Reputations:
    0
    Вообщем у меня возникает такая проблемма мне надо запустить некоторое приложение через шелл, но чтобы оно запустилось в фоновом режиме и обязательно в винде, так как когда запускаешь любое приложение через шелл функция пытаеться прочитать данные от приложения до тех пор пока оно не закроеться, а нужно чтобы запустилось и скрипт продолжал свою дальнейшую работу.
    Как с этим справиться?
     
  2. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    перенаправь вывод от проги в файл, то есть если тебе вообще надо что то получить от проги, но она работает слишком долго, а вообще если ты запустил прогу, то можешь останавливать загрузку шелла в браузере, выполнение программы всё равно будет продолжаться. ну а как я сказал выше, если программа имеет какой то вывод который тебе всё таки например через час надо получить, то направляй вывод в файл.
    shell_exec("programm.exe > c:/1.txt");
     
    _________________________
  3. RaiDeRz

    RaiDeRz Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    121
    Likes Received:
    5
    Reputations:
    0
    вывод мне не нужен... скрипт работает у меня как демон, грубо говоря как планировщик задач прям (но функции у него все равно другие), запустил приложение и работает дальше до вызова след. приложения
    P.S. компилирую демон в exe приложение, так, что тут нельзя вызывать веб-запрос на страницу со скриптом, чтобы он запустил приложение
     
  4. madnet

    madnet Умиротворенный

    Joined:
    9 Dec 2004
    Messages:
    868
    Likes Received:
    343
    Reputations:
    423
    PHP:
    $tmpdir "temp";
    $WshShell = new COM("WScript.Shell");
     if (
    $WshShell){
      
    $output $tmpdir."sess_d473hft4jd7hdy46eg5ifnthd6373g.txt";
           
    unlink($output);
         
    $oExec $WshShell->Run("cmd.exe /c ".$cmd." > ".$output0false);
    }
     
    _________________________
    1 person likes this.
  5. RaiDeRz

    RaiDeRz Elder - Старейшина

    Joined:
    5 Apr 2007
    Messages:
    121
    Likes Received:
    5
    Reputations:
    0
    спасибо, большое работает
    тема закрыта
     
Loading...
Thread Status:
Not open for further replies.