Summary: | server does not stop | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Igor Muratov <migor> |
Component: | nginx | Assignee: | Anton Farygin <rider> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | major | ||
Priority: | P2 | CC: | rider |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 14167 |
Description
Igor Muratov
2005-07-22 10:40:22 MSD
Я, видимо, не до конца понимаю логику работы 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 Заливаю всё кучей. бага все еще актуальна? Нет. |