在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"),但它没有任何作用。
发布于 2014-02-20 09:09:54
它很可能不是作为守护进程运行的,因此它处于挂起状态。查看:
http://www.art-coder.com/2011/12/01/how-to-run-redis-server-as-daemon/
一旦将其设置为守护进程,shell_exec()调用应该立即返回。
您还应该确保php脚本以与redis-server相同的有效用户身份运行
https://stackoverflow.com/questions/21896022
复制相似问题