我正在尝试通过命令行在我的远程虚拟专用服务器上运行 php 脚本。我遵循的过程是:
- 使用 PuTTY 登录服务器
- 在命令行提示符下,键入 > php myScript.php
脚本运行得很好。但问题是,一旦我关闭 PuTTY 控制台窗口,脚本就会停止运行。
我需要脚本继续无休止地运行。我怎样才能做到这一点?我在服务器上运行 Debian。
提前致谢。
我正在尝试通过命令行在我的远程虚拟专用服务器上运行 php 脚本。我遵循的过程是:
脚本运行得很好。但问题是,一旦我关闭 PuTTY 控制台窗口,脚本就会停止运行。
我需要脚本继续无休止地运行。我怎样才能做到这一点?我在服务器上运行 Debian。
提前致谢。
我相信 Ben 有正确的答案,即使用 nohup 命令。nohup 代表 nohangup 并且意味着您的程序应该忽略一个挂断信号,该信号是在您注销或因为您已超时而断开腻子会话时生成的。
您需要注意,命令的输出将附加到当前目录中名为 nohup.out 的文件(如果权限阻止您在当前目录中创建 nohup.out,则为 $HOME/nohup.out)。如果您的程序生成大量输出,则此文件可能会变得非常大,或者您可以使用 shell 重定向将脚本的输出重定向到另一个文件。
nohup php myscript.php >myscript.output 2>&1 &
此命令将运行您的脚本并将所有输出(标准和错误)发送到文件 myscript.output,每次运行程序时都会重新创建该文件。
最后的 & 使脚本在后台运行,因此您可以在它运行或注销时执行其他操作。
一个简单的方法是通过 nohup 运行它:
nohup php myScript.php &
如果您在 a 中运行 php 命令screen
,分离screen
,那么当您关闭控制台时它不会终止。
Screen 是一个终端多路复用器,允许您通过一个物理终端管理多个进程。每个进程都有自己的虚拟窗口,您可以在与每个进程交互的虚拟窗口之间跳转。screen 管理的进程在它们的窗口不活动时继续运行。