Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Jan 2019 14:35:00 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 234614] rc framework should provide RC_SERVICE analog
Message-ID:  <bug-234614-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D234614

            Bug ID: 234614
           Summary: rc framework should provide RC_SERVICE analog
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: kevans@freebsd.org

Created attachment 200770
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D200770&action=
=3Dedit
git(1) diff against rc.subr

Some rc scripts in ports (e.g. uwsgi, apache, openvpn) allow for 'applicati=
on
profiles' that usually require the rc script to be invoked again for each
active profile. Because there's no consistent way to determine the path bec=
ause
it differs between manual/service(8) invocations and /etc/rc invocations, t=
his
leads to patterns like these:

https://svnweb.freebsd.org/ports/head/www/uwsgi/files/uwsgi.in?revision=3D4=
73044&view=3Dmarkup#l104
(hardcoded script path)
https://svnweb.freebsd.org/ports/head/security/openvpn/files/openvpn.in?rev=
ision=3D420825&view=3Dmarkup#l73
(guessing a $_file or $0 based on $0 =3D /etc/rc)

We should provide something similar to OpenRC's RC_SERVICE that rc scripts =
can
consistently use to re-invoke themselves as needed, rather than having to p=
lay
guessing games.

I'm attaching a diff that approximately does ${_file-$0}, but instead sets =
up
an rc_service var as execution goes. It will get set initially to $0, which=
 may
be a terrible guess if we're being executed via /etc/rc, but this guess lat=
er
gets corrected for that case in run_rc_script before the script actually ge=
ts
sourced.

Whether we're directly executing and sourcing rc.subr for the first time, or
whether rc.subr is sourcing the script, rc_service provided by rc.subr shou=
ld
be correct and available in the rc script.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-234614-227>