运行PHP脚本

时间:2013-09-09 05:50:22

标签: php cakephp

我需要继续运行PHP脚本但是我遇到了问题,目前我使用putty登录服务器然后执行PHP代码。当我关闭putty会话时,脚本会停止执行。

步骤:

  1. 使用putty登录服务器
  2. 运行PHP脚本例如PHP文件名
  3. 但是当我关闭putty会话时,程序将明显接近。我需要继续在服务器上运行程序而不管关闭putty,登录到服务器的任何人都可以停止它并作为进程再次运行它。如何运行独立于putty会话的php脚本,这可以由任何登录到服务器的人控制?

2 个答案:

答案 0 :(得分:1)

我不确定你的问题是否真的在编程范围内,它更像是一个unix / linux特定的问题“如何在关闭终端时从shell运行程序”。 PHP碰巧就是那个程序。

你可以php -f scriptname.php > /dev/null 2>/dev/null & disown

STDOUT和STDERR将被重定向到/ dev / null(或者您可以将它们更改为真实文件),并且ambersand将分叉该进程。 Disown将从终端会话中删除正在运行的PID。

答案 1 :(得分:0)

您需要做的是在终止进程之前分叉进程。这样,当您退出进程(或关闭ssh连接)时,辅助进程将继续运行。

$pid = pcntl_fork();
if ($pid == -1) {
  die('could not fork');
} else if ($pid) {
  // parent
  pcntl_wait($status);
} else {
  // child
  // write your code here!
}