Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Nov 2013 17:55:40 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        Allan Jude <freebsd@allanjude.com>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: cron(8) improvement
Message-ID:  <CAJ-VmokX8vV7fz1v%2BR4jXte3vYAQbUF21jscGVYswb=rtk681w@mail.gmail.com>
In-Reply-To: <527EE417.6060704@allanjude.com>
References:  <52792B60.1030309@allanjude.com> <488180AE-5C23-402A-BAA4-E3263D8C52BF@kientzle.com> <1383788977.14448.44112617.6F0D61A0@webmail.messagingengine.com> <527AFAA1.1040001@allanjude.com> <CA%2B7WWSdFFk4npy0=TOWO=6RApv5-wuJASHhE87eUf52DjQrxjw@mail.gmail.com> <D260751E-85D2-4591-88E0-5EFE1821D532@orthanc.ca> <CA%2B7WWSf_%2BBg8rjLdN1j032G2P81odfmQe-Ejyq7A4CqyqPqiAA@mail.gmail.com> <527BCA55.2000207@allanjude.com> <D5199AC5-61E9-4D58-B31E-51E47F1CCFDF@orthanc.ca> <527C5D52.7030508@allanjude.com> <047405A8-B6EB-427B-A2E4-6254DD1A077B@orthanc.ca> <CA%2B7WWSfiWT4wprOS8oQS5YaeE%2BjjyxfK5fzAyFz8XMyX_J%2BoLw@mail.gmail.com> <3E6377FF-69FE-48E4-BFB1-E5095A7FA1BB@orthanc.ca> <527C6DEF.6020102@allanjude.com> <527E3EB3.6000301@FreeBSD.org> <8034B822-F903-43D1-8BF6-DFAD7C22F5B0@gsoft.com.au> <CAJ-VmomXRuwJdKUsbgMjvEtBaDiZoCxacLXOpxhCqoVhkigL6g@mail.gmail.com> <527ED34A.1060401@allanjude.com> <CAJ-Vmokb4=05wVSEzv47sWiU6CLb-_cBQ1FhPSgv%2BeuX8xf2cw@mail.gmail.com> <527EE417.6060704@allanjude.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 9 November 2013 17:40, Allan Jude <freebsd@allanjude.com> wrote:
> On 2013-11-09 20:05, Adrian Chadd wrote:
>> On 9 November 2013 16:28, Allan Jude <freebsd@allanjude.com> wrote:
>>
>>> Well, what about making these extra directories optional then?
>>>
>>> packages install the crontab entries, but crond ignores them unless you add:
>>>
>>> cron_flags="--scandir /etc/cron.d --scandir /usr/local/etc/cron.d"
>>>
>>> or something to that effect
>>>
>>> As for packages enabling things, this seems like a good use of the
>>> /etc/rc.conf.d/ infrastructure, although it has a kind of odd structure,
>>> where the individual files are only included if the name of the service
>>> being started patches. So for example, /etc/rc.conf.d/sshd wouldn't be
>>> read when starting crond
>> Right. I'd rather it read in everything, but I realise that scales poorly.
>>
>> The other alternative is to have a config file populated with the
>> contents of /etc/rc.conf.d/*, so to modify it you'd edit the
>> individual config file(s), then do a "commit" operation to push it
>> into the cache.
>>
>> If the cache file doesn't exist, it simply goes through and reads *
>>
>> if someone wanted to speed up the rcvar set, they could just replace
>> it with a read from an sqlite table or an individual config file (as
>> said above); the rcvar thing is -supposed- to just be attribute=value,
>> so it can be stored anywhere.
>>
>> Note to previous poster: i think the existing policy sucks. :-)
>>
>>
>> -adrian
> I suppose you could easily do something like: cat /etc/rc.conf.d/* >
> /etc/rc.conf.cat
>
> and add rc.conf.cat to rc_conf_files

Right. But what this scheme specifically needs is some semantics for
"thing I do to push new config changes into the rc.conf system" and
"thing I do to force a commit of these changes."

For the rc.conf.cat version, it would do the above. It may just wrap
it in a lock file.

For the sqlite hack version, it would grab a lock and dump everything
into an sqlite table.

The point is that it shouldn't be adhoc. there should be some tools in
base for "things" to add/remove cron configs, add/remove rc.conf
configs, and do a "rebuild" of them.


-adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokX8vV7fz1v%2BR4jXte3vYAQbUF21jscGVYswb=rtk681w>