请问如何重启 nginx? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
2232588429
V2EX    NGINX

请问如何重启 nginx?

  •  
  •   2232588429 2017-07-27 22:07:21 +08:00 14698 次点击
    这是一个创建于 3002 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
       
    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
    looplj
        58
    looplj  
       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'
    shakaraka
        66
    shakaraka  
    PRO
       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     Solana     5616 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 59ms UTC 06:31 PVG 14:31 LAX 23:31 JFK 02:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86