最近不知道为什么博客总是莫名其妙地挂掉,

故障时自动重启Apache,故障重启Apache

最近不知道为什么博客总是莫名其妙地挂掉,
重启Apache就好了,我也懒得去研究到底是哪里出了问题。
只是每次都需要手工SSH上去重启Apache,有点麻烦。
而且有时候在夜里挂掉,一晚上博客就都不能访问了。

后来终于忍无可忍,写了一段脚本来做这件事,代码如下:

#!/bin/sh
if ( wget --timeout=5 -q --spider http://leonax.net/ )
then
echo "ok"
else
/etc/init.d/httpd restart
echo "httpd restarted"
fi

原理很简单,就是尝试访问一下博客(第三行),
如果有什么问题,就重启Apache(第七行)。
其中wget的参数–spider表示只是访问一下,并不下载内容。
如果你喜欢的话,还可以在else中加一段发邮件的代码,
把Apache的error log直接发到邮件,方便分析,不过我就懒得做了。

 

然后把这段代码保存为check_apache.sh,添加到crontab中:

*/5 * * * * /var/www/check_apache.sh

其中*/5表示每5分钟运行一下check_apache.sh。
注意打开crontab的时候要使用sudo,因为重启Apache需要sudo权限。

 

转载自:

最近不知道为什么博客总是莫名其妙地挂掉,
重启Apache就好了,我也懒得去研究到底是哪里出了问题。
只是每次都需要手工SSH上去重启Apache,有点麻烦。
而且有时候在夜里挂掉,一晚上博客就都不能访问了。

重启Apache就好了,我也懒得去研究到底是哪里出了问题。

如果何解决apache停止响应后的重启问题

首先请说明一下你用的是什么linux系统,不同的linux命令是不太一样的。
我个人使用的是ubuntu系统,重启apache的命令是sudo /etc/init.d/apache2
restart
或者分开先停止在启动两个步骤也可以:先 sudo /etc/init.d/apache2 stop

sudo /etc/init.d/apache2 start

补充回答:
试试下面的方法看行不:
1、关闭SELINUX的方法:
# vi /etc/selinux/config
将 SELINUX 的值改成 disabled , 即: SELINUX=disabled

2、不关闭SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t
/usr/local/apache/modules/libphp5.so
# service httpd restart
# setenforce 1
 

后来终于忍无可忍,写了一段脚本来做这件事,代码如下:

只是每次都需要手工SSH上去重启Apache,有点麻烦。

网站老出现开不了的情况 然后重启apache就又可以打开了 是什问题 是服务器问题 还是apache配置问题

都没有问题。重启能正常的话。
 

最近不知道为什么博客总是莫名其妙地挂掉,
重启Apache就好了,我也懒得去研究到底是哪里出了问题…

#!/bin/sh
if ( wget --timeout=5 -q --spider http://leonax.net/ )
then
echo "ok"
else
/etc/init.d/httpd restart
echo "httpd restarted"
fi

而且有时候在夜里挂掉,一晚上博客就都不能访问了。

原理很简单,就是尝试访问一下博客(第三行),
如果有什么问题,就重启Apache(第七行)。
其中wget的参数–spider表示只是访问一下,并不下载内容。
如果你喜欢的话,还可以在else中加一段发邮件的代码,
把Apache的error log直接发到邮件,方便分析,不过我就懒得做了。

后来终于忍无可忍,写了一段脚本来做这件事,代码如下:

 

复制代码 代码如下:

然后把这段代码保存为check_apache.sh,添加到crontab中:

#!/bin/sh
if ( wget –timeout=5 -q –spider )
then
echo “ok”
else
/etc/init.d/httpd restart
echo “httpd restarted”
fi

*/5 * * * * /var/www/check_apache.sh

原理很简单,就是尝试访问一下博客(第三行),
如果有什么问题,就重启Apache(第七行)。
其中wget的参数–spider表示只是访问一下,并不下载内容。
如果你喜欢的话,还可以在else中加一段发邮件的代码,
把Apache的error log直接发到邮件,方便分析,不过我就懒得做了。

其中*/5表示每5分钟运行一下check_apache.sh。
注意打开crontab的时候要使用sudo,因为重启Apache需要sudo权限。

然后把这段代码保存为check_apache.sh,添加到crontab中:

 

复制代码 代码如下:

转载自:

*/5 * * * * /var/www/check_apache.sh

其中*/5表示每5分钟运行一下check_apache.sh。
注意打开crontab的时候要使用sudo,因为重启Apache需要sudo权限。

非常实用的一个小功能,给使用Linux的小伙伴们发福利啦~

您可能感兴趣的文章:

  • apache和mysql重启命令
  • windows下实现定时重启Apache与MySQL方法
  • 智能监测自动重启Apache服务器的Shell脚本

相关文章