如何保持一个持续运行的PHP脚本?

33 浏览
0 Comments

如何保持一个持续运行的PHP脚本?

我有一个监听传入套接字请求的PHP脚本,等等。我需要这个脚本在服务器上持续运行(它在一个无限循环中运行)。

如何启动和管理这个进程?我尝试通过SSH/putty启动它,但是一旦SSH连接超时,脚本就会停止运行。

0
0 Comments

如果目标是长时间可靠地运行,则 supervisord 是完美的选择!我通过 https://lornajane.net/posts/2012/watch-over-long-running-processes-with-supervisord 找到了它。

编辑:这个工具的目的是解决所述的问题。所述目标是保持长时间运行的进程运行。一个评论指出(有效地),当前接受的解决方案不可靠,因为脚本很可能会崩溃等。因此,解决方案是使用一个工具来“启动和管理这个进程”,同时保持其运行。这个工具正是如此:它在后台启动进程并保持其运行。

0
0 Comments

如何保持一个持久的PHP脚本运行?

我们最近也有类似的需求。我们正在运行一个Ubuntu 14.04 LTS服务器,所以创建了一个upstart进程,在启动时启动该进程,并且如果它因任何原因退出,则重新启动。这对我们来说非常有效,包括自动重启;我们的长时间运行的进程最终会丢失MySQL连接。脚本处理异常并退出,然后upstart进程自动重新启动进程。我们还添加了一个cron脚本来监控进程,以防upstart放弃尝试重新启动;在简单的重启无法纠正之前错误时,我们有一个故障转移。

这也是我的首选。

嗨,你能提供一些代码示例或其他可以帮助寻找相同问题的人的东西吗?我是其中之一 🙂

- 我刚刚搜索了“ubuntu upstart example”,从Digital Ocean得到了一个很好的指南。它讨论了比我的示例更多的内容。它执行的PHP脚本只是通过CLI调用的东西 - 只需在一个while循环中包含一个代码。

非常感谢你的帮助,谢谢,这正是我需要的。我还查找了几个类似的教程,最好的一个是这个链接。我希望这会帮助某人,就像它帮助我一样。

0
0 Comments

如何保持持久的PHP脚本运行?

有时候我们可能需要运行一个PHP脚本并让它持续运行,而不是在执行完毕后立即停止。这种情况下,我们需要解决两个问题:如何让脚本在后台运行,并且在服务器重启后能够自动启动。

首先,我们可以使用以下命令将脚本在后台运行:

myscript.php &

通过这个命令,脚本将在后台运行,并且我们可以使用以下命令检查脚本是否在运行:

ps aux | grep myscript.php

接下来,我们需要解决脚本在服务器重启后无法自动启动的问题。一个简单的解决方法是在服务器重启后手动设置脚本的启动。

然而,我们也可以使用以下方法实现脚本在服务器重启后自动启动:

1. 创建一个启动脚本,例如`start_script.sh`,并将以下内容添加到脚本中:

#!/bin/bash
php /path/to/myscript.php &

在这个脚本中,我们使用`php`命令来执行脚本,并将其放在后台运行。

2. 使用以下命令将脚本设置为可执行:

chmod +x start_script.sh

3. 将脚本添加到系统的启动脚本中,以便在服务器重启时自动运行。具体步骤可能因操作系统而异,下面是一些常见操作系统的示例:

- Ubuntu/Debian:

- 将脚本复制到`/etc/init.d/`目录中:

  sudo cp start_script.sh /etc/init.d/
  

- 使用以下命令将脚本添加到系统启动项中:

  sudo update-rc.d start_script.sh defaults
  

- CentOS/RHEL:

- 将脚本复制到`/etc/init.d/`目录中:

  sudo cp start_script.sh /etc/init.d/
  

- 使用以下命令将脚本添加到系统启动项中:

  sudo chkconfig --add start_script.sh
  

现在,当服务器重启时,脚本将自动启动并在后台持续运行。

需要注意的是,尽管以上方法可以实现脚本的持续运行,但脚本可能由于错误或内存泄漏而死机,导致无法重新启动。在这种情况下,我们可能需要定期检查脚本的运行状态,并在需要时手动重新启动脚本。

0