Re: Подмена бинарника в докере
Так и есть, ppid становится 1: # ps axw -o pid,ppid,user,%cpu,vsz,wchan,command PID PPID USER %CPUVSZ 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 %CPUVSZ 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; 1312 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 %CPUVSZ 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; 1312 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 %CPUVSZ 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; 1312 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 Bessonovwrote: Здравстуйте, на сколько я помню, то энджин не посзоляет обновлять конфигурацию, если менять параметры некоторых директив, таких как пути к кэшам. Актуально использую подмену бинарника - вроде помогает. Сейчас эксперементирую с тем же самым, только в контейнере. По умолчанию энджин имеет 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 %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.1 0.3 20224 3208 ?Ss 17:07 0:00 bash root12 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 ?S17:06 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: worker process # kill -USR2 5 # ps auxf USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash root15 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 ?S17:06 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: worker process root13 0.0 0.4 31688 5080 ?S17:08 0:00 \_ nginx: master process /usr/sbin/nginx -g daemon off; nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: worker process # kill -WINCH 5 # ps auxf USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash root16 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 ?S17:06 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: worker process root13 0.0 0.4 31688 5080 ?S17:08 0:00 \_ nginx:
Re: Подмена бинарника в докере
On 25 Apr 2016, at 20:33, Anton Bessonovwrote: > Здравстуйте, > > на сколько я помню, то энджин не посзоляет обновлять конфигурацию, если > менять параметры некоторых директив, таких как пути к кэшам. Актуально > использую подмену бинарника - вроде помогает. > > Сейчас эксперементирую с тем же самым, только в контейнере. По умолчанию > энджин имеет 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 %MEMVSZ RSS TTY STAT START TIME COMMAND > root 7 0.1 0.3 20224 3208 ?Ss 17:07 0:00 bash > root12 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 ?S17:06 0:00 nginx: > master process /usr/sbin/nginx -g daemon off; > nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: > worker process > > # kill -USR2 5 > # ps auxf > USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND > root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash > root15 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 ?S17:06 0:00 nginx: > master process /usr/sbin/nginx -g daemon off; > nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: > worker process > root13 0.0 0.4 31688 5080 ?S17:08 0:00 \_ nginx: > master process /usr/sbin/nginx -g daemon off; > nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: > worker process > > # kill -WINCH 5 > # ps auxf > USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND > root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash > root16 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 ?S17:06 0:00 nginx: > master process /usr/sbin/nginx -g daemon off; > nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: > worker process > root13 0.0 0.4 31688 5080 ?S17:08 0:00 \_ nginx: > master process /usr/sbin/nginx -g daemon off; > nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: > worker process > > # kill -QUIT 5 > # ps auxf > USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND > root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash > root17 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;") > root13 0.0 0.4 31688 5080 ?S17:08 0:00 nginx: > master process /usr/sbin/nginx -g daemon off; > nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: > worker process > > > Теперь вопросы. > > А оно работает? То есть какие проблемы могут возникнуть из-за такого > изврашённого способа? Или есть способ лучше? (Ну в голову пришло ещё просто > стартовать новый контейнер, подменивать днс и выкидывать старый... но я в > этом не сильно шарю - как там ttl и всё такое, если нужно срочно). А что показывает ps axw -o pid,ppid,user,%cpu,vsz,wchan,command В апгрэйде самое главное, чтобы ppid у мастер-процеса был 1. > И ещё вопрос: А после -WINCH воркеры не должны вымирать? Должны. Но при автоматическом апгрэйде достаточно USR2/QUIT. -- Igor Sysoev http://nginx.com ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Запуск nginx в windows
К сожалению пришлось столкнуться, может кто подсказать нормальный и рабочий способ запуска nginx как службы в win2k8/2k12? Сейчас использую winsw (Windows service wrapper) от автора Jenkins. Запуск происходит нормально, а вот остановить не получается. Мой winsw-nginx.xml выглядит так nginx NGINX NGINX c:\nginx-1.8.x\nginx.exe c:\nginx-1.8.x\ roll -p c:\nginx-1.8.x c:\nginx-1.8.x\nginx.exe -s stop Когда останавливаю службу, то получаю ошибку вида http://i.imgur.com/YuB4dNz.png ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Подмена бинарника в докере
Здравстуйте, на сколько я помню, то энджин не посзоляет обновлять конфигурацию, если менять параметры некоторых директив, таких как пути к кэшам. Актуально использую подмену бинарника - вроде помогает. Сейчас эксперементирую с тем же самым, только в контейнере. По умолчанию энджин имеет 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 %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.1 0.3 20224 3208 ?Ss 17:07 0:00 bash root12 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 ?S17:06 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: worker process # kill -USR2 5 # ps auxf USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash root15 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 ?S17:06 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: worker process root13 0.0 0.4 31688 5080 ?S17:08 0:00 \_ nginx: master process /usr/sbin/nginx -g daemon off; nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: worker process # kill -WINCH 5 # ps auxf USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash root16 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 ?S17:06 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx6 0.0 0.2 32068 2860 ?S17:06 0:00 \_ nginx: worker process root13 0.0 0.4 31688 5080 ?S17:08 0:00 \_ nginx: master process /usr/sbin/nginx -g daemon off; nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: worker process # kill -QUIT 5 # ps auxf USER PID %CPU %MEMVSZ RSS TTY STAT START TIME COMMAND root 7 0.0 0.3 20224 3208 ?Ss 17:07 0:00 bash root17 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;") root13 0.0 0.4 31688 5080 ?S17:08 0:00 nginx: master process /usr/sbin/nginx -g daemon off; nginx 14 0.0 0.2 32068 2880 ?S17:08 0:00 \_ nginx: worker process Теперь вопросы. А оно работает? То есть какие проблемы могут возникнуть из-за такого изврашённого способа? Или есть способ лучше? (Ну в голову пришло ещё просто стартовать новый контейнер, подменивать днс и выкидывать старый... но я в этом не сильно шарю - как там ttl и всё такое, если нужно срочно). И ещё вопрос: А после -WINCH воркеры не должны вымирать? С уважением, Антон -- Certified Prince2:2009 Project Manager Professional Scrum Expert Oracle Certified Expert, Enterprise JavaBeans Developer Oracle Certified Professional, Java SE 6 Programmer Now that's a test of the character of an organization. Of the organizations that are attempting to implement Scrum probably, 30% - 35% will successfully implement it. - Ken Schwaber ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru