https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298415
Bug ID: 298415
Summary: rc.subr: can't restart an interpreted daemon after
upgrading the interpreter
Product: Base System
Version: 16.0-CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: bin
Assignee: [email protected]
Reporter: [email protected]
A longstanding problem is that for services written in languages like Python,
"service foo stop" does not work after the interpreter itself is upgraded. It
fails like this:
$ sudo service foo stop
foo not running? (check /var/run/foo.pid)
The problem is that _find_processes tries to find a process whose title matches
the new interpreter, for example python-3.12 . But the actual process is still
using the old interpreter, for example python-3.11 . So _find_processes
wrongly determines that the service isn't running.
One solution would be similar to that described by bug #221203 , setting
extra_process_match="python-3.?? ${procname}"
Another solution would be to hardcode a list of known interpreters with
embedded version numbers, and convert their interpreter match strings into
globs within _find_processes. There wouldn't be very many: python, lua, maybe
tcl.
--
You are receiving this mail because:
You are the assignee for the bug.