有内核造成的nginx启动异常

CentOS5.4之nginx启动异常

1
2
###安装Nginx###
[root@JIRA_Mysql ~]#yum -y install nginx
1
2
###启动Nginx###
[root@JIRA_Mysql ~]#service nginx start -->无任何启动输出信息,当时可郁闷
1
2
3
###查看端口### 
[root@JIRA_Mysql ~]# ss -tanlp | grep nginx   -->端口正常,郁闷消除
0      0                              *:80                            *:*      users:(("nginx",3092,6),("nginx",3093,6))

但是浏览器无法显示页面。

1
2
###查看状态###
[root@JIRA_Mysql ~]#service nginx status -->无信息显示

查看error.log发现错误:

1
2
3
[root@JIRA_Mysql nginx]# tail -f /var/log/nginx/error.log
2014/10/24 20:10:05 [emerg] 18760#0: eventfd() failed (38: Function not implemented)
2014/10/24 20:10:05 [emerg] 18759#0: worker process 18760 exited with fatal code 2 and can not be respawn

错误很明显,Google发现是内核版本太低不支持eventfd(eventfd是实现线程之间事件通知的方式)导致的,故须升级内核即可。

1
2
3
###查看当前内核版本###
[root@JIRA_Mysql ~]#cat /proc/version 
Linux version 2.6.18-164.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Thu Sep 3 03:28:30 EDT 2009

如非特意指定内核版本升级,可使用如下升级方式-->简单粗暴。

1
2
3
4
5
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo     #下载163Base源
yum clean all           #清理缓存
yum makecache           #建立缓存
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*      #导入签名KEY到RPM
yum  upgrade-y          #升级内核版本至最新

升级之后系统版本也会变成最新的版本哦。

1
2
[root@JIRA_Mysql yum.repos.d]# cat /etc/issue
CentOS release 5.11 (Final)
1
2
[root@JIRA_Mysql ~]# cat /proc/version 
Linux version 2.6.18-398.el5 (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)) #1 SMP Tue Sep 16 20:50:52 EDT 2014
1
2
3
[root@JIRA_Mysql ~]# service nginx restart
停止 nginx:                                               [确定]
启动 nginx:                                               [确定]


上一篇:系统诊断小技巧(11):如何解决“问题复现了,但是捕捉数据进程因为CPU打满没有运行”?


下一篇:《UNIX/Linux 系统管理技术手册(第四版)》——1.6 特定于系统的管理工具