<p dir="ltr">Спасибо, Максим. Уже сам понял, что глупость делаю.<br>
replace выполнялся через cp, пока не сообразил, к чему, собственно, это приводит :)</p>
<br><div class="gmail_quote"><div dir="ltr">ср, 16 нояб. 2016, 17:37 Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br class="gmail_msg">
<br class="gmail_msg">
On Wed, Nov 16, 2016 at 02:39:35PM +0000, Andriy Tovstik wrote:<br class="gmail_msg">
<br class="gmail_msg">
> Добрый день!<br class="gmail_msg">
><br class="gmail_msg">
> Столкнулся со следующей ситуацией.<br class="gmail_msg">
> Платформа:<br class="gmail_msg">
> # uname -a<br class="gmail_msg">
> SunOS sunos 5.11 11.3 i86pc i386 i86pc<br class="gmail_msg">
><br class="gmail_msg">
> Пытаюсь обновить бинарник на лету, согласно<br class="gmail_msg">
> <a href="http://nginx.org/ru/docs/control.html#upgrade" rel="noreferrer" class="gmail_msg" target="_blank">http://nginx.org/ru/docs/control.html#upgrade</a><br class="gmail_msg">
> исходная версия nginx 1.11.3<br class="gmail_msg">
> целевой бинарник nginx 1.11.5<br class="gmail_msg">
><br class="gmail_msg">
> конфигурационный файл - дефолтный, без изменений.<br class="gmail_msg">
><br class="gmail_msg">
> опции сборки:<br class="gmail_msg">
> nginx version: nginx/1.11.3<br class="gmail_msg">
> built by gcc 4.8.2 (GCC)<br class="gmail_msg">
> configure arguments: --with-cc=gcc<br class="gmail_msg">
><br class="gmail_msg">
> nginx version: nginx/1.11.5<br class="gmail_msg">
> built by gcc 4.8.2 (GCC)<br class="gmail_msg">
> configure arguments: --with-cc=gcc<br class="gmail_msg">
><br class="gmail_msg">
> Как указано в мануале, заменяю бинарный файл, делаю<br class="gmail_msg">
> kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`<br class="gmail_msg">
> после чего nginx падает в core dump:<br class="gmail_msg">
<br class="gmail_msg">
[...]<br class="gmail_msg">
<br class="gmail_msg">
> что я делаю не правильно?<br class="gmail_msg">
<br class="gmail_msg">
Не раскрыта процедура "заменяю бинарный файл".<br class="gmail_msg">
<br class="gmail_msg">
Если новый файл просто скопировать поверх старого с помощью cp -<br class="gmail_msg">
будет как раз core dump скорее всего.<br class="gmail_msg">
<br class="gmail_msg">
Нужно убрать старый файл в сторону (или удалить), после чего<br class="gmail_msg">
положить новый с тем же именем:<br class="gmail_msg">
<br class="gmail_msg">
    mv /path/to/nginx /path/to/nginx.old<br class="gmail_msg">
    cp objs/nginx /path/to/nginx<br class="gmail_msg">
<br class="gmail_msg">
Ну или положить рядом новый файл, а потом атомарно переименовать:<br class="gmail_msg">
<br class="gmail_msg">
    cp objs/nginx /path/to/nginx.new<br class="gmail_msg">
    mv /path/to/nginx.new /path/to/nginx<br class="gmail_msg">
<br class="gmail_msg">
Важно, чтобы в результате не получилось так, что работающий<br class="gmail_msg">
бинарник переписали по живому (и именно это сделает стандартный<br class="gmail_msg">
cp), а вместо этого был создан новый файл с тем же именем.<br class="gmail_msg">
<br class="gmail_msg">
При установке из исходников - правильные операции умеет<br class="gmail_msg">
проделывать "make install", им и имеет смысл пользоваться.<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Maxim Dounin<br class="gmail_msg">
<a href="http://nginx.org/" rel="noreferrer" class="gmail_msg" target="_blank">http://nginx.org/</a><br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
nginx-ru mailing list<br class="gmail_msg">
<a href="mailto:nginx-ru@nginx.org" class="gmail_msg" target="_blank">nginx-ru@nginx.org</a><br class="gmail_msg">
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" class="gmail_msg" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">WBR, Andriy Tovstik</div></div>