Re: Подмена бинарника в докере

2016-04-25 Пенетрантность Anton Bessonov

Так и есть, 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 Bessonov  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 %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: Подмена бинарника в докере

2016-04-25 Пенетрантность Igor Sysoev
On 25 Apr 2016, at 20:33, Anton Bessonov  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 %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

2016-04-25 Пенетрантность Alex Domoradov
К сожалению пришлось столкнуться, может кто подсказать нормальный и рабочий
способ запуска 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

Подмена бинарника в докере

2016-04-25 Пенетрантность Anton Bessonov

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

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


Сейчас эксперементирую с тем же самым, только в контейнере. По умолчанию 
энджин имеет 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