在 PHP 脚本中,我使用 redis-cli ping
定期检查我的 redis 服务器是否正在运行。
如果这返回 NULL
,我想在同一个脚本中重新启动 redis-server,然后再次 ping redis。
执行此操作的最佳方法是什么?
我最接近的是使用 shell_exec("redis-server")
但这会使 PHP 脚本挂起(因为它在同一进程中启动屏幕)。有没有一种方法可以在不挂断当前脚本的情况下在 PHP 中运行 screen redis-server
?
我也尝试过包含 screen redis-server
的 exec("sh ". __DIR__ . "/start_redis.sh")
,但这什么都不做。
最佳答案
很可能它没有作为守护进程运行,因此挂起。查看:
http://www.art-coder.com/2011/12/01/how-to-run-redis-server-as-daemon/
将其设置为守护进程后,shell_exec() 调用应立即返回。
您还应该确保 php 脚本以与 redis-server 相同的有效用户身份运行
关于php - 在 PHP 脚本中启动 redis-server 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896022/