Re: [PATCHES] Extend service(8) and rc(8) was: Re: HOWTO articles for migrating from Linux to FreeBSD, especially for pkg?

2014-07-19 Thread Adrian Chadd
Hi!

I like it! It's a useful command line API.

Eventually people will realise there needs to be a more formal method
for describing/controlling the underlying framework, but I leave that
up to bapt to figure out and .. well, push people to do. :)

Thanks!



-a

On 19 July 2014 09:08, Lars Engels  wrote:
> On Fri, Jul 18, 2014 at 12:10:34PM -0700, Adrian Chadd wrote:
>> Hi!
>>
>>
>> On 18 July 2014 07:28, Lars Engels  wrote:
>> > On Thu, Jul 17, 2014 at 10:21:17PM +0200, Andreas Nilsson wrote:
>> >> On Thu, Jul 17, 2014 at 10:15 PM, Navdeep Parhar  
>> >> wrote:
>> >>
>> >> > On 07/17/14 13:12, Adrian Chadd wrote:
>> >> > > On 17 July 2014 13:03, Alberto Mijares  wrote:
>> >> > >> On Thu, Jul 17, 2014 at 2:58 PM, Adrian Chadd 
>> >> > wrote:
>> >> > >>> Hi!
>> >> > >>>
>> >> > >>> 3) The binary packages need to work out of the box
>> >> > >>> 4) .. which means, when you do things like pkg install apache, it
>> >> > >>> can't just be installed and not be enabled, because that's a bit of 
>> >> > >>> a
>> >> > >>> problem;
>> >> > >>
>> >> > >>
>> >> > >> No. Please NEVER do that! The user must be able to edit the files and
>> >> > >> start the service by himself.
>> >> > >
>> >> > > Cool, so what's the single line command needed to type in to start a
>> >> > > given package service?
>> >> >
>> >> > Aren't sysrc(8) and service(8) for this kind of stuff?
>> >> >
>> >>
>> >> They sure are.
>> >>
>> >> Well, pkg install $service ; sysrc ${service}_enable="YES" would do.
>> >> Although some services have different names than the packge, which is sort
>> >> of annoying.
>> >
>> > I hacked up a solution for service(8):
>> >
>> > http://bsd-geek.de/FreeBSD/service.sh.enable-disable.patch
>> >
>> > The patch adds the following directives to service(8):
>> >
>> > enable: Grabs an rc script's rcvar value and runs "sysrc foo_enable=YES"
>> > disable: The opposite of enable
>> > rcdelete: Deletes an rc script's rcvar value from /etc/rc.conf using
>> >   "sysrc -x foo_enable"
>> >
>> > The nice thing about is that you can use one of the new directives on
>> > one line with the old ones, as long as the new are the first argument:
>> >
>> > # service syslogd enable
>> > # service apache24 disable stop
>> > # service apache24 rcdelete stop
>> > # service nginx enable start
>> >
>> >
>> > So after installing a package, to start and enable a daemon permanently
>> > all you have to run is
>> > # service foo enable start
>> >
>> > Lars
>> >
>> > P.S.: Thansk to Devin for his hard work on sysrc!
>>
>> Having a way for sysrc and service to know what particular options and
>> services are exposed by a given package or installed "thing" would be
>> nice. Right now the namespace is very flat and it's not obvious in all
>> instances what needs to happen to make it useful and what the options
>> are.
>>
>> "Oh, hm, I'd like to know what options there are for controlling the
>> installed apache24 package, let's see"...
>>
>> I remember IRIX having that command to list services, stop them and
>> start them, configure them enabled and disabled. Solaris grew
>> something like that with Solaris 10 and after the initial learning
>> curve it was great. Hving something like that would be 100% awesome.
>
> I've updated the patch and extended it a little:
>
> https://phabric.freebsd.org/D451
>
> It can now print the rc options for a service.
> It needs however to have the options listed as comments between the
> KEYWORDS section and the sourcing of /etc/rc.subr.
>
>
> And I've made some changes to rc.subr itself:
>
> https://phabric.freebsd.org/D452
>
> So now you can use
>
> # service sshd describe
> Secure Shell Daemon
>
> and
>
> # service sshd extracommands
> configtest keygen reload
>
>
> Sorry for the mess in phabricator's SUMMARY. I will learn the markup
> syntax later...
>
>
> Lars
___
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"


[PATCHES] Extend service(8) and rc(8) was: Re: HOWTO articles for migrating from Linux to FreeBSD, especially for pkg?

2014-07-19 Thread Lars Engels
On Fri, Jul 18, 2014 at 12:10:34PM -0700, Adrian Chadd wrote:
> Hi!
> 
> 
> On 18 July 2014 07:28, Lars Engels  wrote:
> > On Thu, Jul 17, 2014 at 10:21:17PM +0200, Andreas Nilsson wrote:
> >> On Thu, Jul 17, 2014 at 10:15 PM, Navdeep Parhar  wrote:
> >>
> >> > On 07/17/14 13:12, Adrian Chadd wrote:
> >> > > On 17 July 2014 13:03, Alberto Mijares  wrote:
> >> > >> On Thu, Jul 17, 2014 at 2:58 PM, Adrian Chadd 
> >> > wrote:
> >> > >>> Hi!
> >> > >>>
> >> > >>> 3) The binary packages need to work out of the box
> >> > >>> 4) .. which means, when you do things like pkg install apache, it
> >> > >>> can't just be installed and not be enabled, because that's a bit of a
> >> > >>> problem;
> >> > >>
> >> > >>
> >> > >> No. Please NEVER do that! The user must be able to edit the files and
> >> > >> start the service by himself.
> >> > >
> >> > > Cool, so what's the single line command needed to type in to start a
> >> > > given package service?
> >> >
> >> > Aren't sysrc(8) and service(8) for this kind of stuff?
> >> >
> >>
> >> They sure are.
> >>
> >> Well, pkg install $service ; sysrc ${service}_enable="YES" would do.
> >> Although some services have different names than the packge, which is sort
> >> of annoying.
> >
> > I hacked up a solution for service(8):
> >
> > http://bsd-geek.de/FreeBSD/service.sh.enable-disable.patch
> >
> > The patch adds the following directives to service(8):
> >
> > enable: Grabs an rc script's rcvar value and runs "sysrc foo_enable=YES"
> > disable: The opposite of enable
> > rcdelete: Deletes an rc script's rcvar value from /etc/rc.conf using
> >   "sysrc -x foo_enable"
> >
> > The nice thing about is that you can use one of the new directives on
> > one line with the old ones, as long as the new are the first argument:
> >
> > # service syslogd enable
> > # service apache24 disable stop
> > # service apache24 rcdelete stop
> > # service nginx enable start
> >
> >
> > So after installing a package, to start and enable a daemon permanently
> > all you have to run is
> > # service foo enable start
> >
> > Lars
> >
> > P.S.: Thansk to Devin for his hard work on sysrc!
> 
> Having a way for sysrc and service to know what particular options and
> services are exposed by a given package or installed "thing" would be
> nice. Right now the namespace is very flat and it's not obvious in all
> instances what needs to happen to make it useful and what the options
> are.
> 
> "Oh, hm, I'd like to know what options there are for controlling the
> installed apache24 package, let's see"...
> 
> I remember IRIX having that command to list services, stop them and
> start them, configure them enabled and disabled. Solaris grew
> something like that with Solaris 10 and after the initial learning
> curve it was great. Hving something like that would be 100% awesome.

I've updated the patch and extended it a little:

https://phabric.freebsd.org/D451

It can now print the rc options for a service.
It needs however to have the options listed as comments between the
KEYWORDS section and the sourcing of /etc/rc.subr.


And I've made some changes to rc.subr itself:

https://phabric.freebsd.org/D452

So now you can use

# service sshd describe
Secure Shell Daemon

and

# service sshd extracommands
configtest keygen reload


Sorry for the mess in phabricator's SUMMARY. I will learn the markup
syntax later...


Lars


pgpwjm22pgrSF.pgp
Description: PGP signature