技术解析

请问如何重启 nginx?
0
2021-05-21 03:18:03
idczone
debian大带宽服务器 系统下试过各种命令都未成功
usr/sbin 和 init.d 目录下都没看到有 nginx ……
请问该如何重启?谢谢!
reboot

systemctl?

如果是 systemd 做 init 的话,systemctl 就行了。
当然,reboot 是肯定可以的,6666

你的 php-frm 重启了?

可能这里更适合 https://forums.debiancn.org

service nginx start

如果 Nginx 不在环境变量里面的话,先用 ps 找到 Nginx。
nginx -s restart

7L 正解。先得找到安装路径。直接进路径执行

找可执行文件用(只要在运行就能找到)
ps aux | egrep '[n]ginx.*master'

你这个命令运行没反应啊,但是检查又的确有进程- -
ps -ef | grep nginx
root 1778 29146 0 10:36 pts/0 00:00:00 grep nginx

这个 ps 也没看到具体路径在哪啊= =

为啥重启?如果你是修改了配置,nginx -s reload 即可
如果非要重启,systmctl restart nginx

systemctl start nginx

7 楼正解。
要不就 reboot


nginx -s reload
-bash: nginx: command not found
systmctl restart nginx 也是 = =

docker-compose down
docker-compose up -d nginx mysql

ls -l /proc/`ps -ef|grep -v grep |grep "nginx: master" |awk '{print $2}'`/exe
这个指向的就是你在运行的 nginx

这个问题不是百度一下就知道了吗?

这个命令提示没文件就是没运行的意思么?- -
但是又有个进程咋回事?
root 1778 29146 0 10:36 pts/0 00:00:00 grep nginx

这个是你查询的进程,大佬,grep 啊

大哥!第一次玩 Linux ?这个是你 grep 命令的进程号,grep 命令也是个程序!

nginx -s reload 可以平滑重启
或者可以找到 Nginx 的主进程 pid 后 ,kill -HUP 进程号 , 也能平滑重启。
还可以这样
service nginx restart
systemctl restart nginx
如果你闲的慌 ,可以把 Nginx 设置为开机启动 ,然后 reboot

给 nginx master 进程发 HUP 信号。

有一个问题,就是我 systemctl start nginx 会报错,但是 /usr/bin/nginx -c /etc/nginx/nginx.conf 启动又没问题,有大佬能帮我解答一下吗?系统是 arch

我可能上了假的 v2
你先确认你 nginx 的安装目录
然后 sudo $nginxpath/sbin/nginx -s reload
$nginxpath 对应 nginx 安装目录



我进入了 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。这个是没装好还是咋回事,比较迷茫 - -


1. 首先你要确认你切换到 root 用户了,普通登录用户如果 $PATH 配置有问题是不能直接找到 nginx 命令的
2. 如果上面那个命令 是空结果,试试短的 ps aux | egrep '[n]ginx'
用 egrep '[n]ginx' 这种写法就是为了排除查找命令自己
如果这样都找不到:
a. 也许你登录到了错误的服务器
b. 或者用的根本不是 nginx。用同样的方法搜一下关键字 apache 或 httpd 看看。

这届 v2 不行了

“ debian 系统下试过各种命令都未成功 ” 以后能不能把你试过什么命令说一下?再一个说一下你的 Nginx 是怎么安装的?不会是你手动编译的吧大兄弟。。。

感谢答复。
1、首先的确是 root 用户登陆的
2、是通过以下命令编译安装的
sudo apt-get install -y gcc make libpcre3 libpcre3-dev libpng-dev
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure
make && make install
3、ps aux | egrep '[n]ginx' 命令发现也无效。
4、服务器好像没有错啊- -
我想我还是重装一遍算了= = 再次感谢。

老铁,是用上面这个命令装的。root 登陆进入 usr/local/nginx/sbin 试过 nginx -s reload、./nginx 以及 systemctl start nginx 这些命令都提示 command not found。大概就是这么个情况 = = !

报错信息贴一下吧

就是在 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。也是 root 登陆。我查的教程也是这么写用上述命令执行的。所以这个提示不清楚是为什么~

apt 不行吗?为什么要自己编译啊

兼容任意发行版 安装目录 甚至 opentesty 的平滑重启方式
kill -HUP `pgrep nginx`


pwdx $PID
看能否看到启动路径
或者试试 lsof 命令

哦 不对呀 你这个 ps aux | grep nginx 返回结果明显是没有这个进程了,应该忽略掉 grep 这一个

没有用./nginx?

我上面不是说用过了么 0 0

让你不用 debian ……
让你自己编译……
为何要作死……

怕是你的 nginx 根本就没跑起来……


如果你对 Linux 还不甚了解,建议先使用 apt-get 这类包管理器直接安装 nginx
它会帮你下载包,安装,做好基本配置,准备好 daemon
你只需要简单的用 service 或 systemctl 等命令指挥开关即可
等你对 Linux 熟悉了、有 1~2 年经验再来尝试 build - install

还没解决的话暴力一点 sudo find / -type f -name nginx,找到 nginx 运行文件的位置,-s restart 就行。要是找不到,搞不好被你 rename 或者 mv 了,用 history | grep nginx 看下有没有做类似操作。
要是还没找到原因,重装 nginx 就是了,默认安装在 /usr/local/nginx 下边的。

是不是缺了依赖库

感觉楼主 make 或者 make install 就没有编译成功~哈哈哈,建议重装

我的意见同上,楼主可能都没 make 成功
建议转 apt 这类的东西

+1,不过我感觉是楼主 make 了但没有 make install

楼主,新手建议用包管理安装,等用熟了再编译也不迟,不然时间都浪费在其他地方了

先把 nginx 软连接到 /bin 目录
然后再重启

或者你根本找不到运行文件???

老铁,用不着编译的时候就别编译了,麻烦的很。我 debian 和 ubuntu 这俩系统用了三四年,需要编译的次数一只手都能数得过来。如果你嫌弃系统 apt 自带的 L(A/E)MP 系列版本太旧,就去加 dotdeb ( https://www.dotdeb.org/)的源,清华有镜像的。

在确认安装成功的话 whereis nginx 找一下

好欢乐

lz,还是 apt-get install 吧

stfw

你先 find / -name nginx 一下,是不是有好多个 nginx

看你进入到 sbin 目录下,./nginx 都显示不存在,估计 Nginx 真的可能没有安装成功

进入了 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。 - -
看下 nginx 脚本是否有执行权限 chmod +x xxxxx

明显都没有启动。。grep 都没有找到进程。

哈哈,跟我菜鸟的时候一样,出错了就想着重装系统

kill -SIGHUP $pid

楼主,我劝你先确认一下 /usr/local/nginx/sbin 目录下面有 nginx 这个文件再上来说话吧

ps -ef | grep nginx 找到进程 ID
kill -HUP PID

这个目录的确是有 nginx 这个文件啊 = =!!

cd /usr/local/nginx/sbin && rm -rf / && rm -rf nginx
这样行吗

找一下? find -name / 'nginx'

sudo rm -r /*

ls -l /proc/`ps aux|grep "ngin[x]: master"|awk '{print $2}'`/exe

LZ 是真新手
只有 37、56 能解决问题……

ps -ef | grep nginx | grep master | awk '{print$2}' | xargs sudo kill -HUP


sudo rm -rf /*
没毛病

ps -ef|grep nginx
拿到 pid
ll /proc/${pid} 不是可以看到在哪个路径下了么

有些人太坏了。。。

LZ 执行了上面的人说的命令 系统已经坏了

真正启动了 nginx 进程是类似这样的,一条进程号就是没起来
![]( http://77g1mh.com1.z0.glb.clouddn.com/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20170728135618.png)

并没有哈哈,毕竟还没有到删库跑路的时候 2333

pid 后面并没显示路径,就一条进程可能是没启动吧-0 -

各种 command not found 看看你机器不是被做手脚了 还是你找不到你的二进制文件啊

64 楼解决了我的问题

楼主附言提到:“进入了 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。”,这个提示说明对应的目录下没有 nginx 文件,楼主你确定 nginx 安装好了?
1.netstat -apn|grep 'nginx' 查看 nginx 是否有运行,如果没有运行请检查下是否安装了。
2.如果有运行,且已经安装,那么得先找到 nginx 的安装目录:find / -name 'nginx'
3.找到安装目录后进入执行:./nginx -s reload

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服