Так и есть, ppid становится 1:

# ps axw -o pid,ppid,user,%cpu,vsz,wchan,command
  PID  PPID USER     %CPU    VSZ WCHAN  COMMAND
1 0 root 0.2 20044 pipe_w /bin/bash -c $(exec /usr/sbin/nginx -g "daemon off;") 5 1 root 0.0 31684 sigsus nginx: master process /usr/sbin/nginx -g daemon off;
    6     5 nginx     0.0  32068 -      nginx: worker process
    7     0 root      0.6  20224 wait   bash
11 7 root 0.0 17500 - ps axw -o pid,ppid,user,%cpu,vsz,wchan,command

# kill -USR2 5
# ps axw -o pid,ppid,user,%cpu,vsz,wchan,command
  PID  PPID USER     %CPU    VSZ WCHAN  COMMAND
1 0 root 0.0 20044 pipe_w /bin/bash -c $(exec /usr/sbin/nginx -g "daemon off;") 5 1 root 0.0 31684 sigsus nginx: master process /usr/sbin/nginx -g daemon off;
    6     5 nginx     0.0  32068 -      nginx: worker process
    7     0 root      0.0  20224 wait   bash
12 5 root 0.0 31688 sigsus nginx: master process /usr/sbin/nginx -g daemon off;
   13    12 nginx     0.0  32068 -      nginx: worker process
14 7 root 0.0 17500 - ps axw -o pid,ppid,user,%cpu,vsz,wchan,command

# kill -WINCH 5
# ps axw -o pid,ppid,user,%cpu,vsz,wchan,command
  PID  PPID USER     %CPU    VSZ WCHAN  COMMAND
1 0 root 0.0 20044 pipe_w /bin/bash -c $(exec /usr/sbin/nginx -g "daemon off;") 5 1 root 0.0 31684 sigsus nginx: master process /usr/sbin/nginx -g daemon off;
    6     5 nginx     0.0  32068 -      nginx: worker process
    7     0 root      0.0  20224 wait   bash
12 5 root 0.0 31688 sigsus nginx: master process /usr/sbin/nginx -g daemon off;
   13    12 nginx     0.0  32068 -      nginx: worker process
15 7 root 0.0 17500 - ps axw -o pid,ppid,user,%cpu,vsz,wchan,command

# kill -QUIT 5
# ps axw -o pid,ppid,user,%cpu,vsz,wchan,command
  PID  PPID USER     %CPU    VSZ WCHAN  COMMAND
1 0 root 0.0 20044 pipe_w /bin/bash -c $(exec /usr/sbin/nginx -g "daemon off;")
    7     0 root      0.0  20224 wait   bash
12 1 root 0.0 31688 sigsus nginx: master process /usr/sbin/nginx -g daemon off;
   13    12 nginx     0.0  32068 -      nginx: worker process
16 7 root 0.0 17500 - ps axw -o pid,ppid,user,%cpu,vsz,wchan,command

On 25.04.2016 21:08, Igor Sysoev wrote:
On 25 Apr 2016, at 20:33, Anton Bessonov <exe...@gmail.com> wrote:

Здравстуйте,

на сколько я помню, то энджин не посзоляет обновлять конфигурацию, если менять 
параметры некоторых директив, таких как пути к кэшам. Актуально использую 
подмену бинарника - вроде помогает.

Сейчас эксперементирую с тем же самым, только в контейнере. По умолчанию энджин 
имеет PID 1, что убивает контейнер после kill -QUIT 1.

В docker-compose делаю следующее:

version: '2'
services:
  nginxt:
    image: nginx
    ports:
      - "6283:80"
    command: /bin/bash -c '$$(exec /usr/sbin/nginx -g "daemon off;")'

Вроде работает:

# ps auxf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         7  0.1  0.3  20224  3208 ?        Ss   17:07   0:00 bash
root        12  0.0  0.2  17496  2064 ?        R+   17:07   0:00  \_ ps auxf
root         1  0.0  0.2  20044  2704 ?        Ss   17:06   0:00 /bin/bash -c $(exec 
/usr/sbin/nginx -g "daemon off;")
root         5  0.0  0.4  31684  4860 ?        S    17:06   0:00 nginx: master 
process /usr/sbin/nginx -g daemon off;
nginx        6  0.0  0.2  32068  2860 ?        S    17:06   0:00  \_ nginx: 
worker process

# kill -USR2 5
# ps auxf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         7  0.0  0.3  20224  3208 ?        Ss   17:07   0:00 bash
root        15  0.0  0.2  17496  2048 ?        R+   17:08   0:00  \_ ps auxf
root         1  0.0  0.2  20044  2704 ?        Ss   17:06   0:00 /bin/bash -c $(exec 
/usr/sbin/nginx -g "daemon off;")
root         5  0.0  0.4  31684  4860 ?        S    17:06   0:00 nginx: master 
process /usr/sbin/nginx -g daemon off;
nginx        6  0.0  0.2  32068  2860 ?        S    17:06   0:00  \_ nginx: 
worker process
root        13  0.0  0.4  31688  5080 ?        S    17:08   0:00  \_ nginx: 
master process /usr/sbin/nginx -g daemon off;
nginx       14  0.0  0.2  32068  2880 ?        S    17:08 0:00      \_ nginx: 
worker process

# kill -WINCH 5
# ps auxf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         7  0.0  0.3  20224  3208 ?        Ss   17:07   0:00 bash
root        16  0.0  0.1  17496  1956 ?        R+   17:09   0:00  \_ ps auxf
root         1  0.0  0.2  20044  2704 ?        Ss   17:06   0:00 /bin/bash -c $(exec 
/usr/sbin/nginx -g "daemon off;")
root         5  0.0  0.4  31684  4860 ?        S    17:06   0:00 nginx: master 
process /usr/sbin/nginx -g daemon off;
nginx        6  0.0  0.2  32068  2860 ?        S    17:06   0:00  \_ nginx: 
worker process
root        13  0.0  0.4  31688  5080 ?        S    17:08   0:00  \_ nginx: 
master process /usr/sbin/nginx -g daemon off;
nginx       14  0.0  0.2  32068  2880 ?        S    17:08 0:00      \_ nginx: 
worker process

# kill -QUIT 5
# ps auxf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         7  0.0  0.3  20224  3208 ?        Ss   17:07   0:00 bash
root        17  0.0  0.2  17496  2064 ?        R+   17:09   0:00  \_ ps auxf
root         1  0.0  0.2  20044  2704 ?        Ss   17:06   0:00 /bin/bash -c $(exec 
/usr/sbin/nginx -g "daemon off;")
root        13  0.0  0.4  31688  5080 ?        S    17:08   0:00 nginx: master 
process /usr/sbin/nginx -g daemon off;
nginx       14  0.0  0.2  32068  2880 ?        S    17:08   0:00  \_ nginx: 
worker process


Теперь вопросы.

А оно работает? То есть какие проблемы могут возникнуть из-за такого 
изврашённого способа? Или есть способ лучше? (Ну в голову пришло ещё просто 
стартовать новый контейнер, подменивать днс и выкидывать старый... но я в этом 
не сильно шарю - как там ttl и всё такое, если нужно срочно).
А что показывает
ps axw -o pid,ppid,user,%cpu,vsz,wchan,command

В апгрэйде самое главное, чтобы ppid у мастер-процеса был 1.

И ещё вопрос: А после -WINCH воркеры не должны вымирать?
Должны. Но при автоматическом апгрэйде достаточно USR2/QUIT.



_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить