簡體   English   中英

在php中后台運行的控制台應用程序的最佳方法是什么?

[英]What is the best way to work with console application runned in background in php?

我的任務是在php上編寫一些“控制面板”,以與基於linux控制台的應用程序,游戲服務器一起使用。 因此,我需要啟動,停止(那里沒有問題)並使用應用程序控制台-向其發送字符串命令,並捕獲輸出。

最好的方法是什么? 我考慮創建一些.sh腳本/模板,並使用php shell_exec命令調用它-這將是最簡單的方法。 但是如何通過控制台實現工作-發送命令並捕獲輸出的最佳方法是什么? 在運行腳本之前調用“ fg”,在運行腳本之后調用“ bg”? 使用屏幕並切換到它嗎?

做這個的最好方式是什么?

最好的方法是在后台將“其他應用程序”作為守護程序運行,並通過套接字(tcp,unix,..)與其通信。

如果您實際上也開發了基於控制台的應用程序,則可以很容易地做到這一點。 如果不這樣做,並且該應用程序僅從stdin / stdout讀/寫,則可以構建一些其他控制器進程,以在套接字上公開這兩個I / O通道。

我對此很難理解的第一個想法是一個Python腳本,該腳本使用subprocess模塊在后台運行另一個進程,然后與其通信。 然后,使Python腳本打開一個套接字以與PHP應用程序對話(當然,您應該能夠以自己喜歡的語言進行操作。我的語言是Python :)。

我只是有個瘋狂的主意。 我可以命名管道-“ mkfifo pipename”,然后從shell_exec使用它(例如,我可以執行“ echo quit >> pipename”。

問題是我聽不清最后一條命令的答案,但這太酷了。 在項目的這個階段,我只需要向服務器發送命令並捕獲控制台輸出即可。 我會花更多時間,但似乎使用命名管道是最簡單的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM