首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从PHP重新启动memcached

如何从PHP重新启动memcached
EN

Stack Overflow用户
提问于 2012-03-26 23:21:13
回答 3查看 3.9K关注 0票数 2

我有副总裁-和centos一起主持。在这台服务器上有Apache,PHP,MySql。我安装了memcached。有时( 3-4天) memcached停止-我不知道为什么,在日志文件中缺少必要的信息。

我找到了解决方案--每10分钟运行一次cron,以验证memcached是否启动(通过memcached -tool命令),当memcached已经崩溃时-我发送电子邮件,并通过服务器命令行启动memv=cached

但是我会自动启动memcached,但我不能这样做。

我试过了,命令

代码语言:javascript
复制
system("/etc/init.d/memcached start");
exec("service memcached start");
system("service memcached start");

但是我没有结果。

EN

回答 3

Stack Overflow用户

发布于 2012-03-26 23:29:48

我只想指出,为这样的事情创建一个实际的cronjob要安全得多。

请在此处阅读有关exec()函数的更多信息:http://php.net/manual/en/function.exec.php

此外,如果safe_mode处于打开状态,您将无法在safe_mode_exec_dir之外执行命令。这些都是在php.ini或自定义php配置中设置的。

正如另一个回答者所指出的,隔离崩溃的原因而不是重复启动它会更好。当memcached崩溃时,你会得到什么类型的错误?显然你有办法知道它已经崩溃了,否则你就不会问这个问题了。最明显的答案可能是缓存已经满了,你的脚本对缓存的访问太重了/经常导致它无法换出页面。

票数 4
EN

Stack Overflow用户

发布于 2012-03-26 23:24:15

在终止和启动memcached之前,你应该使用sudo让php升级到root,否则你会得到权限限制。

另外,尝试检查memcached崩溃的原因,而不是重新启动它!!

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 23:24:47

您可能需要使用sudo。运行apache的用户不允许运行init脚本本身。

代码语言:javascript
复制
system("sudo /etc/init.d/memcached start");

可能会使apache用户能够使用sudo。这是通过visudo命令完成的。http://www.gratisoft.us/sudo/visudo.man.html

但老实说,最好是使用类似monit的东西来自动化“看门狗”的角色。它是为它而设计的。http://mmonit.com/monit/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9874877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档