worker processes does not die when service nginx stop
Я, видимо, не до конца понимаю логику работы start_stop_daemon. Можете подсказать как это решить?
Ещё не копал, хотя killall nginx уже звучало.
killall я делать точно не буду
Пожалуйста, подскажите как правильно решить эту проблему. Сейчас я этого сделать не могу.
Я бы подсказал, если бы был в курсе.
(In reply to comment #5) > Я бы подсказал, если бы был в курсе. А ты до сих пор не применяешь nginx? :)
Актуально для 0.5.31-alt1 2 lakostis: ты альтовой сборкой пользовался?
Значтак. stop() фиксится как раз просто: - stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- nginx + stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- /usr/sbin/nginx Следующий пациент -- upgrade(), которое дёргается на condrestart. Сейчас отдельно повешу, а это у меня в nginx.git сейчас будет (0.5.31-alt1.1).
Полный путь нужно указывать только в том случае, когда в $PATH есть другой одноимённый executable. Поэтому смысл замены nginx на /usr/sbin/nginx я не вижу.
Тем не менее хватило одной этой правки, чтоб застопалось (процесс имеет обыкновение менять себе process title или как его). Я помню, что в /etc/init.d/functions делалась довольно развесистая обработка, но сегодня пробегал только по диагонали... часом не сравнивалось с /proc/$PID/exe? "# We need the absolute pathname for /proc/*/exe checks." Ровно чтоб цепляло глаз -- во всех остальных вызовах оставил nginx, а не $BINARY==/usr/bin/nginx -- мож когда кто доберётся, а сейчас по факту работает. Там оказалось ещё несколько process related усложнений около upgrade(), ну да это всё стопкой коммитов уже у меня в nginx.git и всё проверенное работает :)
WHICH="$(absolute "$NAME")" || return 1 Миша, откати скорее это изменение, оно ничего не исправляет. Если у тебя что-то исправилось, то по другой причине.
Дим, оно, к сожалению, _исправило_ и я почти готов дать зуб, что именно атомарное -- проверил пару раз. Можно взять сборку 0.5.31-alt1, применить к ней только это изменение и проверить, останавливается ли запущенный сервер, при помощи service nginx restart service nginx restart Сегодня больше разборок не будет -- я ещё хочу до полуночи домой добраться. Тот пакет, который сейчас -- рабочий для меня по меркам, принятым мной для apache (а TODO там наоставлено, ещё на подход к инитскрипту хватит ;-).
Ой, а зачем --name? Поменяйте на stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- nginx Использование --name менее безопасно и в данном случае выглядит совершенно ненужным.
fixed in 0.5.31-alt3.1 [0e8601f] (пока не заливаю, ещё #12655)
(In reply to comment #14) > fixed in 0.5.31-alt3.1 [0e8601f] Точнее, [2e7557c] -- забыл спек закоммитить.
PS: в смысле было сделано - stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- $BINARY + stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- nginx Заливаю всё кучей.
бага все еще актуальна?
Нет.