svn commit: r288291 - head/etc
Adrian Chadd
adrian at freebsd.org
Sun Jun 19 03:32:28 UTC 2016
i think that's fine for -11. I'd like to just move limits to /bin for
12. (I mean, it's 2016, why are you splitting / and /usr again? But..)
I don't want to see differing system behaviour between limits but it's
likely unavoidable for 11 and could do with some errata notice so
people know what to expect.
Thanks,
-adrian
On 18 June 2016 at 17:06, Cy Schubert <Cy.Schubert at komquats.com> wrote:
> In message <2171b966-35c7-2dad-2c0f-f23061cb677a at freebsd.org>, Niclas
> Zeising w
> rites:
>> On 09/27/15 06:03, Adrian Chadd wrote:
>> > Author: adrian
>> > Date: Sun Sep 27 04:03:11 2015
>> > New Revision: 288291
>> > URL: https://svnweb.freebsd.org/changeset/base/288291
>> >
>> > Log:
>> > Enforce consistent limits of daemons run from rc.subr:
>> >
>> > * Allow the user to configure the login class to use in rc.conf
>> > by using {daemon}_login_class, which;
>> > * Use the daemon class by default;
>> > * .. and then use 'limits' to set the login class so it works both
>> > via init at startup (which runs this in 'daemon' class) and via
>> > whichever root environment (eg command line, other daemons, etc.)
>> >
>> > Reviewed by: dteske
>> > Differential Revision: https://reviews.freebsd.org/D3630
>> >
>> > Modified:
>> > head/etc/rc.subr
>> >
>> > Modified: head/etc/rc.subr
>> > ===========================================================================
>> ===
>> > --- head/etc/rc.subr Sun Sep 27 03:46:55 2015 (r288290)
>> > +++ head/etc/rc.subr Sun Sep 27 04:03:11 2015 (r288291)
>> > @@ -768,6 +768,8 @@ check_startmsgs()
>> > #
>> > # ${name}_prepend n Command added before ${command}.
>> > #
>> > +# ${name}_login_class n Login class to use, else "daemon".
>> > +#
>> > # ${rc_arg}_cmd n If set, use this as the method when invoked;
>> > # Otherwise, use default command (see below)
>> > #
>> > @@ -942,7 +944,7 @@ run_rc_command()
>> > _nice=\$${name}_nice _user=\$${name}_user \
>> > _group=\$${name}_group _groups=\$${name}_groups \
>> > _fib=\$${name}_fib _env=\$${name}_env \
>> > - _prepend=\$${name}_prepend
>> > + _prepend=\$${name}_prepend _login_class=\${${name}_login_class:-da
>> emon}
>> >
>> > if [ -n "$_user" ]; then # unset $_user if running as that user
>> > if [ "$_user" = "$(eval $IDCMD)" ]; then
>> > @@ -1050,6 +1052,9 @@ $command $rc_flags $command_args"
>> > fi
>> > fi
>> >
>> > + # Prepend default limits
>> > + _doit="limits -C $_login_class $_doit"
>> ^^^^^^^^^^
>> > +
>> > # run the full command
>> > #
>> > if ! _run_rc_doit "$_doit"; then
>>
>> Apologies for waking so late.
>> This breaks the start of scripts running before file systems are
>> mounted, for example /etc/rc.d/ddb, if / and /usr are on separate
>> partitions. The issue is that limits is /usr/bin/limits, and for
>> obvious reasons can't be found before /usr is mounted.
>> I suggest either move /usr/bin/limits to /bin/limits or avoid using it
>> altogether.
>> Do you want me to open a PR to track this issue?
>> Regards!
>
> A simple solution might be,
>
> Index: rc.subr
> ===================================================================
> --- rc.subr (revision 302001)
> +++ rc.subr (working copy)
> @@ -1071,8 +1071,13 @@
> fi
> fi
>
> + # Before we prepend limits, test if limits is
> + # available (/usr is mounted) so that limits can
> + # be run.
> + if limits >/dev/null 2>&1; then
> # Prepend default limits
> - _doit="limits -C $_login_class $_doit"
> + _doit="limits -C $_login_class $_doit"
> + fi
>
> # run the full command
> #
>
>
> --
> Cheers,
> Cy Schubert <Cy.Schubert at cschubert.com>
> FreeBSD UNIX: <cy at FreeBSD.org> Web: http://www.FreeBSD.org
>
> The need of the many outweighs the greed of the few.
>
>
>
More information about the svn-src-all
mailing list