如果你是一名 Web 開發者,你應該很清楚執行 PHP 代碼時會遇到以下問題:
- 命令行終端關閉后程序也隨之終止
- 需要一直占用終端,無法進行其他操作
- 執行耗時長的命令需要等待很久,不能等待
如果你遇到了這些問題,那么 nohup(no hang up)命令可能就可以解決你的困擾。nohup 可以讓你在后臺執行命令,退出終端后,程序仍會繼續執行。
下面我們以使用 PHP 的 Yaf 框架為例來說明如何使用 nohup。
nohup php index.php
如果我們希望將日志記錄到文件,你可以使用輸出重定向符將輸出重定向到文件中:
nohup php index.php > /path/to/logfile.log
在上面的例子中,nohup 命令會將輸出寫入 /path/to/logfile.log 文件,程序會在后臺一直運行,直到完成。
如果你希望在程序運行期間能夠接收用戶的請求,可以使用下面的命令:
nohup php -S 127.0.0.1:8000 -t public/ &
上面的命令會在后臺啟動一個 PHP 內置的 Web 服務器,并監聽本機的 8000 端口,所有的請求都會被程序處理。
nohup 命令非常實用,但也有一些限制:
- 你無法交互式地與程序進行通信
- 程序會一直運行,無法中途停止
不過,對于大部分非交互式的服務器進程而言,nohup 是解決問題的良方。
總結: nohup 命令可以讓你在后臺執行命令,退出終端后,程序仍會繼續執行。在使用 Yaf 框架時,你可以使用 nohup 命令來執行程序,以進行后臺運行。
上一篇nohup php -f
下一篇apache php運行