2009-11-12 44 views
-1

我在PHP中使用popen來執行TCL文件。popen錯誤處理

 $cmd='C:/wamp/www/Tcl/bin/tclsh84.exe'; //windows 
      $ph = popen($cmd,'w') 

但是,如果有人重新啓動機器或tclsh84.exe進程被終止。我怎麼知道這個錯誤情況已經發生? $ ph在這些條件下不返回0。

問候, 大額牛

回答

-1

看到任務列表實用程序從there的文檔。此實用程序是命令行中的一種任務管理器(功能稍少一些,因爲您只能列出進程而不影響它們)。在服務器上可以訪問該實用程序,可以使用exec函數獲取進程列表並使用該進程。

一個可能的代碼將是類似的東西:

function isTCLRunning(){ 
    $running = false; 
    exec('tasklist.exe /fo CSV /fi tclsh84.exe', $output); 

    return count($output) == 1 
    } 

注:這是完全地未經考驗的,你可能要玩一點帶有任務列表,並確保它返回預期的輸出開始編碼之前你PHP函數。

+0

想知道爲什麼我已經投下了票...... – RageZ 2009-11-16 12:14:55

+0

也許是因爲原來的問題真的是關於popen(),而你的答案是關於tcl(這實際上是一個原始問題中偶然的細節)。 – Peter 2011-06-17 17:18:50