Hello! On Wed, Nov 16, 2016 at 02:39:35PM +0000, Andriy Tovstik wrote:
> Добрый день! > > Столкнулся со следующей ситуацией. > Платформа: > # uname -a > SunOS sunos 5.11 11.3 i86pc i386 i86pc > > Пытаюсь обновить бинарник на лету, согласно > http://nginx.org/ru/docs/control.html#upgrade > исходная версия nginx 1.11.3 > целевой бинарник nginx 1.11.5 > > конфигурационный файл - дефолтный, без изменений. > > опции сборки: > nginx version: nginx/1.11.3 > built by gcc 4.8.2 (GCC) > configure arguments: --with-cc=gcc > > nginx version: nginx/1.11.5 > built by gcc 4.8.2 (GCC) > configure arguments: --with-cc=gcc > > Как указано в мануале, заменяю бинарный файл, делаю > kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` > после чего nginx падает в core dump: [...] > что я делаю не правильно? Не раскрыта процедура "заменяю бинарный файл". Если новый файл просто скопировать поверх старого с помощью cp - будет как раз core dump скорее всего. Нужно убрать старый файл в сторону (или удалить), после чего положить новый с тем же именем: mv /path/to/nginx /path/to/nginx.old cp objs/nginx /path/to/nginx Ну или положить рядом новый файл, а потом атомарно переименовать: cp objs/nginx /path/to/nginx.new mv /path/to/nginx.new /path/to/nginx Важно, чтобы в результате не получилось так, что работающий бинарник переписали по живому (и именно это сделает стандартный cp), а вместо этого был создан новый файл с тем же именем. При установке из исходников - правильные операции умеет проделывать "make install", им и имеет смысл пользоваться. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
