【问题标题】:Starting redis-server process within PHP script在 PHP 脚本中启动 redis-server 进程
【发布时间】:2025-12-27 01:05:10
【问题描述】:

在 PHP 脚本中,我使用 redis-cli ping 定期检查我的 redis 服务器是否正在运行。

如果返回NULL,我想在同一个脚本中重新启动redis-server,然后再次ping redis。

最好的方法是什么?

我最接近的是使用shell_exec("redis-server"),但这会使 PHP 脚本挂起(因为它在同一进程中启动屏幕)。有没有办法可以在 PHP 中运行 screen redis-server 而不会挂起当前脚本?

我也尝试过包含screen redis-serverexec("sh " . __DIR__ . "/start_redis.sh"),但没有任何作用。

【问题讨论】:

    标签: php shell unix redis shell-exec


    【解决方案1】:

    很可能它没有作为守护进程运行,因此它处于挂起状态。签出:

    http://www.art-coder.com/2011/12/01/how-to-run-redis-server-as-daemon/

    一旦将其设置为守护程序,shell_exec() 调用应立即返回。

    您还应该确保 php 脚本以与 redis-server 相同的有效用户身份运行

    【讨论】: