Summary: | service -e doesn't show all enabled services | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Miroslav Lachman <000.fbsd> | ||||||
Component: | misc | Assignee: | Alan Somers <asomers> | ||||||
Status: | New --- | ||||||||
Severity: | Affects Some People | CC: | ak, amd64, asomers, emaste, jilles, junovitch, kevans, marius.halden, vsasjason, zi | ||||||
Priority: | --- | Keywords: | patch | ||||||
Version: | 10.3-RELEASE | ||||||||
Hardware: | amd64 | ||||||||
OS: | Any | ||||||||
See Also: |
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213463 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216115 |
||||||||
Attachments: |
|
Description
Miroslav Lachman
2016-03-08 15:38:29 UTC
I did upgrade from FreeBSD 10.2 to 10.3 and upgraded ISC DHCP from 4.1 to 4.3 but problem remains: service -e doesn't show isc-dhcpd service -l shows isc-dhcpd Can somebody look on to this annoying bug? Add isc-dhcp maintainer to CC. This is because the isc-dhcp script uses parameter expansion to strip the isc- off of $name. See below from a 'sh -x /usr/sbin/service -e'. Note that 'eval name' fails because $name is still defined as whatever service was before it. ... + echo $'foreman_proxy_enable=\'YES\'' + eval $'foreman_proxy_enable=\'YES\'' + foreman_proxy_enable=YES + checkyesno foreman_proxy_enable + echo /usr/local/etc/rc.d/isc-dhcpd /usr/local/etc/rc.d/isc-dhcpd + grep -q ^rcvar /usr/local/etc/rc.d/isc-dhcpd6 + grep '^name=' /usr/local/etc/rc.d/isc-dhcpd6 + eval 'name=${name##*/isc-}' + name=foreman_proxy ... Created attachment 186509 [details]
service.patch
Hi,
We ran into the same issue with tomcat 8 and 8.5. The attached patch fixes the issue in service itself by querying the service with `run_rc_script … enabled` to figure out if it's enabled or not.
I think the way name is defined in tomcat 8 should not be considered an error as it's from what I understand done to make it easier to have multiple instances of tomcat running. Which is done by linking/copying the original rc script and defining the new variables in rc.conf using the name of the new file instead of the old.
Created attachment 186540 [details]
service.patch
I realised the original patch had an issue with rcvar being empty. Here is an updated patch which works around this by defining a default dummy rcvar incase it's not set in the rc script. Although hacky, it does seem to work.
(In reply to Marius Halden from comment #4) Argh, seems like I messed up when I tested this first. It har the same behaviour as earlier. CC jilles@, one of our resident gurus. Note that this is also a problem for services that are unconditionally enabled, like sysctl. And the patch looks promising. I'll try it out when I have time. |