php怎麼即時顯示shell指令碼的輸出

來源:互聯網
上載者:User
php如何即時顯示shell指令碼的輸出
大家好,我現在有一個shell指令碼,實現的是一鍵啟動的功能。想要把它做成web版
但是這個指令碼執行的時間較長,大概要2-3分鐘,期間會echo一些成功的提示資訊至螢幕上

但是現在用php來調這個指令碼,用的是exec和system,發現要一直等這個指令碼全部執行完之後才會在網頁上列印出語句
現在我的問題是,可不可以shell列印出一條語句網頁上就顯示出一條語句,而不是等shell全部執行完後一起顯示

謝謝大家!
------解決方案--------------------
你的echo語句是shell中的吧,可以這樣
調用shell可以加一個輸出重新導向,追加一個檔案中,調用這個shell需要是後台執行。
然後再使用php調用tail命令每一秒讀取這個輸出檔案顯示,這裡需要設定緩衝區為0,否則也是會等夠4096才會顯示的。

例如:
exec("/home/web/a.sh >> /home/web/a.log 2>&1 &");
$log = file_get_contents('/home/web/a.log');
這裡log你可以把每一行都存入數組,然後每次只echo新的行。

------解決方案--------------------
exec和system都是函數
既然是函數,調用時就一定會等待返回
除非被調函數設有回呼函數

既然exec和system都沒有提供回呼函數介面,那麼就只有等待他的結束了
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.