V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
2232588429
V2EX  ›  NGINX

请问如何重启 nginx?

  •  
  •   2232588429 · 2017-07-27 22:07:21 +08:00 · 14164 次点击
    这是一个创建于 2681 天前的主题,其中的信息可能已经有所发展或是发生改变。
    debian 系统下试过各种命令都未成功
    usr/sbin 和 init.d 目录下都没看到有 nginx ……
    请问该如何重启?谢谢!
    第 1 条附言  ·  2017-07-27 23:38:35 +08:00
    进入了 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。 - -
    79 条回复    2017-07-28 21:58:31 +08:00
    yxwzaxns
        1
    yxwzaxns  
       2017-07-27 22:08:38 +08:00
    reboot
    UnknownR
        2
    UnknownR  
       2017-07-27 22:09:26 +08:00
    systemctl?
    wevsty
        3
    wevsty  
       2017-07-27 22:12:26 +08:00
    如果是 systemd 做 init 的话,systemctl 就行了。
    当然,reboot 是肯定可以的,6666
    xfspace
        4
    xfspace  
       2017-07-27 22:15:20 +08:00 via Android
    你的 php-frm 重启了?
    Ultraman
        5
    Ultraman  
       2017-07-27 22:20:05 +08:00 via Android
    可能这里更适合 https://forums.debiancn.org
    coltguo
        6
    coltguo  
       2017-07-27 22:23:53 +08:00
    service nginx start
    moult
        7
    moult  
       2017-07-27 22:24:47 +08:00
    如果 Nginx 不在环境变量里面的话,先用 ps 找到 Nginx。
    nginx -s restart
    Famio
        8
    Famio  
       2017-07-27 22:27:08 +08:00
    7L 正解。先得找到安装路径。直接进路径执行
    cxbig
        9
    cxbig  
       2017-07-27 22:27:47 +08:00
    找可执行文件用(只要在运行就能找到)
    ps aux | egrep '[n]ginx.*master'
    2232588429
        10
    2232588429  
    OP
       2017-07-27 22:38:28 +08:00
    @cxbig 你这个命令运行没反应啊,但是检查又的确有进程- -
    ps -ef | grep nginx
    root 1778 29146 0 10:36 pts/0 00:00:00 grep nginx


    @moult 这个 ps 也没看到具体路径在哪啊= =
    ericgui
        11
    ericgui  
       2017-07-27 22:46:36 +08:00 via iPhone
    为啥重启?如果你是修改了配置,nginx -s reload 即可
    如果非要重启,systmctl restart nginx
    xiaoheijw
        12
    xiaoheijw  
       2017-07-27 22:50:31 +08:00
    systemctl start nginx
    AEANWspPmj3FUhDc
        13
    AEANWspPmj3FUhDc  
       2017-07-27 22:51:39 +08:00
    7 楼正解。
    要不就 reboot
    2232588429
        14
    2232588429  
    OP
       2017-07-27 22:52:37 +08:00
    @ericgui

    nginx -s reload

    -bash: nginx: command not found

    systmctl restart nginx 也是 = =
    silencefent
        15
    silencefent  
       2017-07-27 22:54:56 +08:00
    docker-compose down
    docker-compose up -d nginx mysql
    knightdf
        16
    knightdf  
       2017-07-27 22:55:00 +08:00
    ls -l /proc/`ps -ef|grep -v grep |grep "nginx: master" |awk '{print $2}'`/exe
    这个指向的就是你在运行的 nginx
    isphone
        17
    isphone  
       2017-07-27 22:55:08 +08:00
    这个问题不是百度一下就知道了吗?
    2232588429
        18
    2232588429  
    OP
       2017-07-27 22:58:15 +08:00
    @knightdf 这个命令提示没文件就是没运行的意思么?- -

    但是又有个进程咋回事?

    root 1778 29146 0 10:36 pts/0 00:00:00 grep nginx
    xiaoheijw
        19
    xiaoheijw  
       2017-07-27 22:59:21 +08:00
    @2232588429 这个是你查询的进程,大佬,grep 啊
    knightdf
        20
    knightdf  
       2017-07-27 23:01:08 +08:00
    @2232588429 大哥!第一次玩 Linux ?这个是你 grep 命令的进程号,grep 命令也是个程序!
    kenshin912
        21
    kenshin912  
       2017-07-27 23:03:14 +08:00   ❤️ 1
    nginx -s reload 可以平滑重启
    或者可以找到 Nginx 的主进程 pid 后 ,kill -HUP 进程号 , 也能平滑重启。
    还可以这样
    service nginx restart
    systemctl restart nginx
    如果你闲的慌 ,可以把 Nginx 设置为开机启动 ,然后 reboot
    wanderer
        22
    wanderer  
       2017-07-27 23:05:05 +08:00
    给 nginx master 进程发 HUP 信号。
    xiaoheijw
        23
    xiaoheijw  
       2017-07-27 23:08:00 +08:00
    有一个问题,就是我 systemctl start nginx 会报错,但是 /usr/bin/nginx -c /etc/nginx/nginx.conf 启动又没问题,有大佬能帮我解答一下吗?系统是 arch
    Infernalzero
        24
    Infernalzero  
       2017-07-27 23:15:48 +08:00
    我可能上了假的 v2
    你先确认你 nginx 的安装目录
    然后 sudo $nginxpath/sbin/nginx -s reload
    $nginxpath 对应 nginx 安装目录
    2232588429
        25
    2232588429  
    OP
       2017-07-27 23:18:53 +08:00
    @kenshin912
    @Infernalzero

    我进入了 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。这个是没装好还是咋回事,比较迷茫 - -
    cxbig
        26
    cxbig  
       2017-07-27 23:40:47 +08:00
    @2232588429
    1. 首先你要确认你切换到 root 用户了,普通登录用户如果 $PATH 配置有问题是不能直接找到 nginx 命令的
    2. 如果上面那个命令 是空结果,试试短的 ps aux | egrep '[n]ginx'
    用 egrep '[n]ginx' 这种写法就是为了排除查找命令自己
    如果这样都找不到:
    a. 也许你登录到了错误的服务器
    b. 或者用的根本不是 nginx。用同样的方法搜一下关键字 apache 或 httpd 看看。
    Jakesoft
        27
    Jakesoft  
       2017-07-27 23:42:28 +08:00 via iPhone   ❤️ 2
    这届 v2 不行了
    shiji
        28
    shiji  
       2017-07-27 23:47:22 +08:00 via Android
    “ debian 系统下试过各种命令都未成功 ” 以后能不能把你试过什么命令说一下?再一个说一下你的 Nginx 是怎么安装的?不会是你手动编译的吧大兄弟。。。
    2232588429
        29
    2232588429  
    OP
       2017-07-27 23:49:18 +08:00
    @cxbig 感谢答复。

    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、服务器好像没有错啊- -

    我想我还是重装一遍算了= = 再次感谢。
    2232588429
        30
    2232588429  
    OP
       2017-07-27 23:52:47 +08:00
    @shiji 老铁,是用上面这个命令装的。root 登陆进入 usr/local/nginx/sbin 试过 nginx -s reload、./nginx 以及 systemctl start nginx 这些命令都提示 command not found。大概就是这么个情况 = = !
    pqee
        31
    pqee  
       2017-07-27 23:55:49 +08:00 via Android
    报错信息贴一下吧
    2232588429
        32
    2232588429  
    OP
       2017-07-27 23:58:58 +08:00
    @pqee 就是在 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。也是 root 登陆。我查的教程也是这么写用上述命令执行的。所以这个提示不清楚是为什么~
    mkeith
        33
    mkeith  
       2017-07-28 00:03:50 +08:00 via iPhone
    apt 不行吗?为什么要自己编译啊
    est
        34
    est  
       2017-07-28 00:30:49 +08:00 via iPhone   ❤️ 1
    兼容任意发行版 安装目录 甚至 opentesty 的平滑重启方式

    kill -HUP `pgrep nginx`
    ik
        35
    ik  
       2017-07-28 00:37:58 +08:00 via iPhone
    @2232588429
    pwdx $PID
    看能否看到启动路径
    或者试试 lsof 命令
    ik
        36
    ik  
       2017-07-28 00:39:37 +08:00 via iPhone
    @2232588429 哦 不对呀 你这个 ps aux | grep nginx 返回结果明显是没有这个进程了,应该忽略掉 grep 这一个
    darkshell
        37
    darkshell  
       2017-07-28 00:49:37 +08:00 via iPhone   ❤️ 1
    @2232588429 没有用./nginx?
    2232588429
        38
    2232588429  
    OP
       2017-07-28 00:54:23 +08:00
    @darkshell 我上面不是说用过了么 0 0
    msg7086
        39
    msg7086  
       2017-07-28 01:11:27 +08:00   ❤️ 6
    让你不用 debian ……
    让你自己编译……

    为何要作死……
    Lentin
        40
    Lentin  
       2017-07-28 02:08:55 +08:00
    怕是你的 nginx 根本就没跑起来……
    cxbig
        41
    cxbig  
       2017-07-28 02:50:39 +08:00   ❤️ 1
    @2232588429
    如果你对 Linux 还不甚了解,建议先使用 apt-get 这类包管理器直接安装 nginx
    它会帮你下载包,安装,做好基本配置,准备好 daemon
    你只需要简单的用 service 或 systemctl 等命令指挥开关即可

    等你对 Linux 熟悉了、有 1~2 年经验再来尝试 build - install
    wuYin
        42
    wuYin  
       2017-07-28 03:34:43 +08:00 via Android   ❤️ 1
    还没解决的话暴力一点 sudo find / -type f -name nginx,找到 nginx 运行文件的位置,-s restart 就行。要是找不到,搞不好被你 rename 或者 mv 了,用 history | grep nginx 看下有没有做类似操作。
    要是还没找到原因,重装 nginx 就是了,默认安装在 /usr/local/nginx 下边的。
    panda1001
        43
    panda1001  
       2017-07-28 07:46:41 +08:00 via Android
    是不是缺了依赖库
    syncher
        44
    syncher  
       2017-07-28 08:00:03 +08:00 via Android
    感觉楼主 make 或者 make install 就没有编译成功~哈哈哈,建议重装
    imlonghao673
        45
    imlonghao673  
       2017-07-28 08:11:23 +08:00 via Android
    我的意见同上,楼主可能都没 make 成功

    建议转 apt 这类的东西
    ragnaroks
        46
    ragnaroks  
       2017-07-28 08:18:40 +08:00
    +1,不过我感觉是楼主 make 了但没有 make install
    firemiles
        47
    firemiles  
       2017-07-28 08:22:30 +08:00 via Android
    楼主,新手建议用包管理安装,等用熟了再编译也不迟,不然时间都浪费在其他地方了
    drlalll
        48
    drlalll  
       2017-07-28 08:24:07 +08:00
    先把 nginx 软连接到 /bin 目录
    然后再重启
    drlalll
        49
    drlalll  
       2017-07-28 08:25:40 +08:00
    @drlalll 或者你根本找不到运行文件???
    shiji
        50
    shiji  
       2017-07-28 08:35:46 +08:00   ❤️ 1
    @2232588429 老铁,用不着编译的时候就别编译了,麻烦的很。我 debian 和 ubuntu 这俩系统用了三四年,需要编译的次数一只手都能数得过来。如果你嫌弃系统 apt 自带的 L(A/E)MP 系列版本太旧,就去加 dotdeb ( https://www.dotdeb.org/)的源,清华有镜像的。
    eoo
        51
    eoo  
       2017-07-28 08:47:52 +08:00 via Android
    在确认安装成功的话 whereis nginx 找一下
    yanjunjie
        52
    yanjunjie  
       2017-07-28 09:19:07 +08:00
    好欢乐
    timothyye
        53
    timothyye  
       2017-07-28 09:20:59 +08:00 via Android
    lz,还是 apt-get install 吧
    kmahyyg
        54
    kmahyyg  
       2017-07-28 09:22:43 +08:00 via Android
    stfw
    TestSmirk
        55
    TestSmirk  
       2017-07-28 09:26:06 +08:00
    你先 find / -name nginx 一下,是不是有好多个 nginx
    mentalidade
        56
    mentalidade  
       2017-07-28 09:27:12 +08:00   ❤️ 1
    看你进入到 sbin 目录下,./nginx 都显示不存在,估计 Nginx 真的可能没有安装成功
    SoulSleep
        57
    SoulSleep  
       2017-07-28 09:29:14 +08:00
    进入了 usr/local/nginx/sbin 目录执行 nginx -s reload 或者./nginx 都提示 command not found。 - -

    看下 nginx 脚本是否有执行权限 chmod +x xxxxx
    ZSeptember
        58
    ZSeptember  
       2017-07-28 09:52:00 +08:00
    明显都没有启动。。grep 都没有找到进程。
    joeke
        59
    joeke  
       2017-07-28 09:58:21 +08:00
    哈哈,跟我菜鸟的时候一样,出错了就想着重装系统
    rrfeng
        60
    rrfeng  
       2017-07-28 10:02:36 +08:00
    kill -SIGHUP $pid
    catinred
        61
    catinred  
       2017-07-28 10:04:05 +08:00
    楼主,我劝你先确认一下 /usr/local/nginx/sbin 目录下面有 nginx 这个文件再上来说话吧
    ansheng
        62
    ansheng  
       2017-07-28 10:12:48 +08:00
    ps -ef | grep nginx 找到进程 ID
    kill -HUP PID
    2232588429
        63
    2232588429  
    OP
       2017-07-28 10:13:37 +08:00
    @catinred 这个目录的确是有 nginx 这个文件啊 = =!!
    macfee
        64
    macfee  
       2017-07-28 10:15:05 +08:00   ❤️ 1
    cd /usr/local/nginx/sbin && rm -rf / && rm -rf nginx
    这样行吗
    zhongkouwei
        65
    zhongkouwei  
       2017-07-28 10:21:44 +08:00
    找一下? find -name / 'nginx'
    wunonglin
        66
    wunonglin  
       2017-07-28 10:30:10 +08:00
    sudo rm -r /*
    hicdn
        67
    hicdn  
       2017-07-28 10:43:25 +08:00
    ls -l /proc/`ps aux|grep "ngin[x]: master"|awk '{print $2}'`/exe
    ETiV
        68
    ETiV  
       2017-07-28 10:48:45 +08:00 via iPhone
    LZ 是真新手
    只有 37、56 能解决问题……
    leon1900
        69
    leon1900  
       2017-07-28 10:58:53 +08:00
    ps -ef | grep nginx | grep master | awk '{print$2}' | xargs sudo kill -HUP
    HuangLibo
        70
    HuangLibo  
       2017-07-28 11:03:21 +08:00
    @wunonglin
    sudo rm -rf /*
    没毛病
    funky
        71
    funky  
       2017-07-28 13:32:18 +08:00
    ps -ef|grep nginx
    拿到 pid
    ll /proc/${pid} 不是可以看到在哪个路径下了么
    nnxiaod
        72
    nnxiaod  
       2017-07-28 13:49:18 +08:00
    有些人太坏了。。。
    happywowwow
        73
    happywowwow  
       2017-07-28 13:52:22 +08:00
    LZ 执行了上面的人说的命令 系统已经坏了
    gyx6644932
        74
    gyx6644932  
       2017-07-28 14:02:24 +08:00   ❤️ 1
    真正启动了 nginx 进程是类似这样的,一条进程号就是没起来
    ![]( http://77g1mh.com1.z0.glb.clouddn.com/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20170728135618.png)
    2232588429
        75
    2232588429  
    OP
       2017-07-28 14:05:09 +08:00
    @happywowwow 并没有哈哈,毕竟还没有到删库跑路的时候 2333
    2232588429
        76
    2232588429  
    OP
       2017-07-28 14:06:09 +08:00
    @funky pid 后面并没显示路径,就一条进程可能是没启动吧-0 -
    zhoulouzi
        77
    zhoulouzi  
       2017-07-28 14:59:51 +08:00
    各种 command not found 看看你机器不是被做手脚了 还是你找不到你的二进制文件啊
    caniuse
        78
    caniuse  
       2017-07-28 15:10:06 +08:00
    64 楼解决了我的问题
    xiaoz
        79
    xiaoz  
       2017-07-28 21:58:31 +08:00   ❤️ 1
    楼主附言提到:“进入了 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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1074 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 573ms · UTC 20:00 · PVG 04:00 · LAX 12:00 · JFK 15:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.