在PHP脚本中,我使用redis-cli ping
定期检查我的redis-server是否正在运行。
如果返回NULL
,我想在同一个脚本中重启redis-server,再次ping redis。
这样做的最佳方式是什么?
我最接近的是使用shell_exec("redis-server")
,但这会使PHP脚本挂起(因为它在同一个过程中启动屏幕)。有没有办法在PHP中运行screen redis-server
而不挂掉当前脚本?
我还尝试了exec("sh " . __DIR__ . "/start_redis.sh")
,其中包含screen redis-server
,但这没有任何效果。
答案 0 :(得分:0)
很可能它不是作为守护进程运行,因此它是挂起的。退房:
http://www.art-coder.com/2011/12/01/how-to-run-redis-server-as-daemon/
将其设置为守护程序后,应立即返回shell_exec()调用。
您还应该确保php脚本作为与redis-server
相同的有效用户运行