CentOS7 下,编译nginx1.6.2启动报错(但项目可运行)

山人野客 发布于 2015/02/03 00:43
阅读 650
收藏 0

Serverless 架构就不要服务器了?>>>

#nginx版本信息:

nginx -V

nginx version: nginx/1.6.2

built by gcc 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC)

#centos版本信息

CentOS Linux release 7.0.1406 (Core)

#nginx进程查看

ps -ef |grep nginx
root      2984     1  0 2月02 ?       00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www       2985  2984  0 2月02 ?       00:00:01 nginx: worker process
www       2986  2984  0 2月02 ?       00:00:01 nginx: worker process
www       2987  2984  0 2月02 ?       00:00:01 nginx: worker process
www       2989  2984  0 2月02 ?       00:00:00 nginx: worker process
www       2990  2984  0 2月02 ?       00:00:01 nginx: worker process
www       2991  2984  0 2月02 ?       00:00:01 nginx: worker process
www       2992  2984  0 2月02 ?       00:00:01 nginx: worker process
www       2993  2984  0 2月02 ?       00:00:01 nginx: worker process
root      3827  3766  0 00:27 pts/0    00:00:00 grep --color=auto nginx



service nginx status (我写了一个脚本,放到 /etc/rc.d/init.d/下面[后附],nginx是编译安装的)

可为什么用 status查看时,出现如下截图错误(start时,一直显示wait...),web可以正常启动.....

启动脚本如下


#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
# Taken from http://。。。。。
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
configtest || return $?
stop
sleep 1
start
}

reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

configtest() {
$nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2



望能得指点,感谢!!!


加载中
0
Feng_Yu
Feng_Yu
另外,我专门在centos7的仓库中list了一下,epel源中的nginx已经是1.6.2的了,干嘛还要自己编译,自己写脚本?不觉得累吗?
Feng_Yu
Feng_Yu
回复 @山人野客 : 添加epel源直接yum install nginx就行了,那个版本就已经是1.6.2了,而且会附带依赖安装geoip。你试试就知道了,而且也带有systemd服务脚本,你可以学学
山人野客
山人野客
回复 @Feng_Yu : [nginx的依赖项就有geoip]那我重新删除后试试,非常感谢!
Feng_Yu
Feng_Yu
回复 @山人野客 : 不是啊,nginx的依赖项就有geoip,安装nginx的时候会作为依赖安装,根本不用自己编译。systemd的资料网上找找看,很多。也可以从现成的systemd抄一个改改,比init.d好写的多
山人野客
山人野客
感谢回执! 主要是因为使用GEOIP,只能手工编译.....systemctl,需要写一个启动列进去吗?可否烦能推荐一个文参考...我搜索 systemctl 脚本/启动脚本/找不到.....
1
Feng_Yu
Feng_Yu
不要再写init.d了,那是过时的做法了,centos7已经用systemd了,建议去看看systemd的资料。centos7几乎已经把所有的服务脚本全部迁移出init.d了,全部用systemd托管
0
char1st
char1st
systemctl




返回顶部
顶部