Bug 59350 - в sysvinit не работает stop
Summary: в sysvinit не работает stop
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: mini_httpd (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 minor
Assignee: Grigory Ustinov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-05-27 18:31 MSK by wd
Modified: 2026-05-28 13:30 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wd 2026-05-27 18:31:41 MSK
start работает штатно
stop - Service mini_httpd is not running.                                                                                                                                                                                                                                             [PASSED]

файлы lock и pid появляются
Comment 1 Антон Мидюков 2026-05-27 18:37:21 MSK
/var/run и /var/lock у вас симлинки на /run и /run/lock, соответственно?
Comment 2 wd 2026-05-27 18:40:34 MSK
да, как было из коробки
Comment 3 Божченко Павел Александрович 2026-05-28 13:25:59 MSK
Подтверждаю воспроизведение на Sisyphus

Версии пакетов:
mini_httpd-1.30-alt1.1.x86_64
webserver-common-control-1.4-alt1.noarch
webserver-common-1.4-alt1.noarch

Init-скрипт ищет процесс mini_httpd с признаком --expect-user root, но mini_httpd после старта переключается на пользователя nobody. Из-за этого start-stop-daemon не находит процесс при stop, и скрипт ошибочно сообщает что сервис не запущен, хотя он работает. Нужно либо убрать --expect-user root из скрипта, либо заменить на --expect-user nobody

Убедиться, что ожидается именно пользователь root:
# grep -n "expect-user" /etc/rc.d/init.d/mini_httpd

28:    start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- mini_httpd -i "$PIDFILE" $HTTPD_OPTS
34:    stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root mini_httpd
46:    stop_daemon --expect-user root -HUP mini_httpd
62:        status --pidfile "$PIDFILE" --expect-user root mini_httpd


Посмотреть реального пользователя процесса:
# ps -eo user,pid,cmd | grep -v grep | grep mini_httpd

nobody      1633 /bin/mini_httpd -i /var/run/mini_httpd.pid -d /var/www/html -p 80 -h localhost


Временное решение - отредактировать инит-скрипт самостоятельно:
# sed -i.bak 's/--expect-user root/--expect-user nobody/g' /etc/rc.d/init.d/mini_httpd && systemctl daemon-reload

После этого, start и stop будут работать корректно