题 如何重启nginx?


对我来说,我运行“killall nginx”并通过“sbin / nginx”启动它,任何人都有更好的重启脚本?

顺便说一句:我从源码安装nginx,我找不到'service nginx'命令或/etc/init.d/nginx


77
2017-12-16 07:49




你为什么要从源码安装? Nginx软件包可用于大多数优秀的服务器Linux发行版。或者您可以滚动自己的包,但不使用包是可维护性的错误。 - Tom O'Connor
因为mod_rails - larry


答案:


nginx包提供了一个/etc/init.d/nginx脚本,它提供了通常的start | stop | restart | reload ...功能。

/etc/init.d/nginx restart 

将重启nginx

一如既往

service nginx restart

编辑

这里 是一个可以用作/etc/init.d/nginx的脚本的链接。


127
2018-06-11 00:50



取决于您的存储库。 Nginx源代码不提供init脚本,所以如果你想从源代码更新和编译,你必须从wiki获得一个。 - Martin Fjordvald
在回答问题之前我必须喝更多咖啡...... - Iain
服务nginx重启指向什么,并且当对init.d / nginx进行更改时,是否适合重新加载某些内容?我的两个命令(/etc/init.d/nginx和service nginx)似乎不同步。 - Danny
@Danny:dunno我写的> 2年前。 - Iain


http://wiki.nginx.org/CommandLine

在链接里面有一些启动和停止nginx服务器的命令

用于启动nginx:

/usr/bin/nginx

用于停止nginx:

/usr/bin/nginx -s stop

/usr/bin 取决于你安装nginx的位置


11
2018-02-12 19:08



@slm修好了!只是添加更多细节。 - LiJung


编辑配置文件后,我在OpenBSD上重启它:

kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && \
    tail -2 /var/www/logs/error.log ; date

HUP 信号使它重新读取其配置文件, tail 显示是否遇到任何错误, date 将这些错误放入上下文中(仅当来自的时间发生错误) date 匹配日志中的时间),和 sleep 1 确保在nginx有时间写入之前从日志中读取之间没有竞争条件。

这就是它的样子:

Cns# kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && tail -2 /var/www/logs/error.log ; date
Tue Feb 12 10:58:52 PST 2013
2013/02/12 10:03:35 [emerg] 8120#0: directive "set" is not terminated by ";" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:226
2013/02/12 10:04:19 [emerg] 8120#0: invalid return code "$uri_def" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:231
Tue Feb 12 10:58:53 PST 2013
Cns# 

事实上,日志的时间不是在打印的时间之间 date 表示此次没有遇到任何错误,新配置很好。


1
2017-12-16 08:00





您可以在NginX Wiki中找到init脚本: http://wiki.nginx.org/Configuration#Init_Scripts

restart函数运行以下命令:

BASEDIR=
$BASEDIR/sbin/nginx -s stop
$BASEDIR/sbin/nginx $BASEDIR/conf/nginx.conf

如果您在/ opt / nginx中安装了nginx,请替换 BASEDIR= 通过 BASEDIR=/opt/nginx


0
2017-12-16 08:02





通常,从源安装的软件包不会安装启动脚本 /etc/init.d/。你有两个选择。

1-您可以在源代码目录或网站上查找脚本,并根据需要进行自定义。

2-您可以从系统中复制另一个包的启动脚本并进行自定义。


0