Php
如何檢查php內置伺服器是否正在執行
最新版本的 PHP 有一個內置的網路伺服器(用於非生產環境),可以使用
php -S [...]
.在嘗試啟動它之前,如何檢查它是否已經在伺服器上執行?
我意識到 hacky 方法是嘗試啟動它並註意錯誤消息
Failed to listen on [...]
,但我認為可能有更清潔的方法 :-)編輯:我忘了提到最終我希望能夠在腳本中檢查這一點,並且只有在伺服器尚未啟動時才啟動它。我也忘了提到我正在尋找一種適用於 Linux 的解決方案,但當然也歡迎使用 Windows 解決方案,以防有一天其他人會尋找它 :-)
由於我對 Paolo 答案的編輯被拒絕,這裡有一個更完整的答案:
ps aux | grep php
如果 php 目前正在執行,此命令將輸出如下內容:
pi 3245 0.0 0.5 21400 2416 pts/0 S Jan29 0:02 php -S localhost:8000 -t /path/to/php/docroot pi 3518 0.0 0.3 5220 1712 pts/0 S+ 00:42 0:00 grep --color=auto php
第二行可以忽略,因為它只是自引用搜尋命令。此腳本將檢查伺服器是否正在執行,如果沒有則啟動它:
if ! ps aux | grep -v grep | grep -qs 'php -S localhost:8000'; then php -S localhost:8000 -t /path/to/php/docroot &>/dev/null & fi
正如 Michael Hampton 已經建議的那樣,類似的命令
ps aux | grep php
將顯示 PHP 的網路伺服器是否已經啟動。