nohup
和直接运行 php
脚本之间的主要区别在于它们处理后台进程和信号的方式
nohup
(no hang up):
nohup
是一个用于在 Unix 和类 Unix 系统中运行命令的实用程序,它允许你安全地在后台运行进程,即使你关闭了终端或注销了系统。当使用 nohup
运行 PHP 脚本时,它会忽略 SIGHUP(挂起)信号,这意味着即使终端会话关闭,脚本也会继续运行。使用 nohup
的基本语法:
nohup php script.php &
这将把 PHP 脚本的输出重定向到名为 nohup.out
的文件中,除非你指定了其他输出文件。
php script.php
,它会创建一个子进程来执行脚本。如果关闭终端会话或注销系统,这个子进程通常会被终止,导致脚本停止运行。总结一下,nohup
的主要优势在于它允许你在后台安全地运行 PHP 脚本,即使关闭了终端会话。这对于需要长时间运行的脚本或在远程服务器上运行的脚本非常有用。而直接运行 PHP 脚本适用于快速执行的任务,但在这种情况下,你需要确保保持终端会话打开,以防止进程被终止。