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.

Reply via email to