Doug Barton schrieb: >On 03/04/2011 14:51, Miroslav Lachman wrote: >> Hilko Meyer wrote: >>> >>> today I played a bit with service(8) and I noticed that it doesn't >>> properly >>> detects the isc-dhcpd-startscript. System is 7.3-RELEASE-p4. 'service >>> -l' lists >>> isc-dhcpd but 'service -e' doesn't lists it: >>> | hilti@kirk:~> service -l | grep dhcp >>> | isc-dhcpd >>> | hilti@kirk:~> service -e | grep dhcp >>> | hilti@kirk:~> /usr/local/etc/rc.d/isc-dhcpd rcvar >>> | # dhcpd >>> | dhcpd_enable=YES >> >> It works for me on newer version of the FreeBSD (7.4-RELEASE) and with >> newer dhcpd (isc-dhcp41-server-4.1.2_2,1) >> >> ~/# service -l | grep dhcp >> isc-dhcpd >> isc-dhcpd6 >> >> ~/# service -e | grep dhcp >> /usr/local/etc/rc.d/isc-dhcpd >> /usr/local/etc/rc.d/isc-dhcpd6 >> >> ~/# /usr/local/etc/rc.d/isc-dhcpd rcvar >> # dhcpd >> dhcpd_enable=YES >> >> So you can compare rc scripts for those two versions or compare changes >> in service between these two FreeBSD releases. > >I'm glad to hear that Miroslav was able to make it work. I looked at the >code and it's pretty simple, so I'm not sure why it would fail. > >Hilko, if you can add -x to the end of the #!/bin/sh line in >/usr/sbin/service it might give you more of an idea of what's going on.
Thanks for the hint. I think I found something: hilti@kirk:~/dhcpd> script log sh -x /usr/sbin/service -e [snip] + grep -q ^rcvar /etc/rc.d/yppasswdd + grep ^name= /etc/rc.d/yppasswdd + eval name="yppasswdd" + name=yppasswdd + grep ^rcvar /etc/rc.d/yppasswdd + eval rcvar="nis_yppasswdd_enable" + rcvar=nis_yppasswdd_enable + checkyesno nis_yppasswdd_enable + grep -q ^rcvar /usr/local/etc/rc.d/isc-dhcpd + grep ^name= /usr/local/etc/rc.d/isc-dhcpd + eval name=dhcpd + name=dhcpd + grep ^rcvar /usr/local/etc/rc.d/isc-dhcpd + eval rcvar_chuser () rcvar_jail () rcvar_chroot () rcvar_pidnleases () rcvar_rooted () rcvar=${name}_enable + checkyesno nis_yppasswdd_enable Seems 'grep ^rcvar /usr/local/etc/rc.d/isc-dhcpd' finds more than expected. I added a '=' in /usr/sbin/service and changed the line to eval `grep ^rcvar= $file`. Now it works like expected. But there is stil one question. Why it works in 7.4-RELEASE with newer dhcpd? | hilti@kirk:~/dhcpd> grep ^rcvar isc-dhcpd_* | isc-dhcpd_3.1.in:rcvar_chuser () | isc-dhcpd_3.1.in:rcvar_jail () | isc-dhcpd_3.1.in:rcvar_chroot () | isc-dhcpd_3.1.in:rcvar_pidnleases () | isc-dhcpd_3.1.in:rcvar_rooted () | isc-dhcpd_3.1.in:rcvar=${name}_enable | isc-dhcpd_4.1.in:rcvar_chuser () | isc-dhcpd_4.1.in:rcvar_chroot () | isc-dhcpd_4.1.in:rcvar_pidnleases () | isc-dhcpd_4.1.in:rcvar_rooted () | isc-dhcpd_4.1.in:rcvar=${name}_enable In both files more than one result. And there was no change in service(8) between 7.3 and 74. Strange... Hilko _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"