AW: why are init's arguments wiped ?

Tito farmatito at tiscali.it
Mon Feb 1 13:13:05 UTC 2016



On 02/01/2016 01:29 PM, Nicolas CARRIER wrote:
> "/proc/1/cmdline is not a standard Unix ..."
>
> I absolutely don't know any other OS, be it Unix or not... But don't
> they provide a way to access the command-line used to launch a program ?
> In busybox's code at least, I see only one implementation of
> read_cmdline, which reads the content of /proc/[PID]/cmdline.
>  From that I conclude that only Unices having this file can have a
> busybox ps implementation dealing with the command-line.
>
> What's more, I don't think that erasing it's command-line is a "nice"
> behavior for a program.
> What if I want to debug how init was launched ? The way it behaves now
> makes it impossible to know if a runlevel has been passed, how it was
> passed, or even if we are launching the right init binary.
> On some platforms I work on, there are 2 different init binaries, it
> would be nice if performing a simple ps could assure me the right init
> binary is used.

Hi,
is renaming them to init1 and init2 an option?

Ciao,
Tito

> To conclude, I don't think that "allow[ing] init to take arguments" is
> only useful for "passing of information in the init arguments via
> /proc/1/cmdline". It is also a way to preserve informations passed by
> init's father, whose motivations we can't foresee.
>
> 2016-02-01 11:55 GMT+01:00 Laurent Bercot <ska-dietlibc at skarnet.org
> <mailto:ska-dietlibc at skarnet.org>>:
>
>     On 01/02/2016 08:12, dietmar.schindler at manroland-web.com
>     <mailto:dietmar.schindler at manroland-web.com> wrote:
>
>         Anyone doing engineering work should come up with a better reason
>         than something like "that's always been done that way".
>
>
>       Oh, definitely. But I'm not the one engineering something here,
>     I'm the bad guy saying I don't like the suggested change.
>
>       History and tradition *are* valid objections to change, because
>     breaking
>     compatibility (if only compatibility of visual output) has a cost.
>     They're not powerful objections: if a historical design is bad, and
>     the new design brings obvious benefits, then it's entirely worth
>     deviating
>     from tradition. But everything else being equal, if the new design isn't
>     strictly more powerful than the old one, then tradition may be worth
>     keeping.
>
>       In the present case, the choice is between "wipe init arguments"
>     (historical) and "allow init to take arguments" (suggested change).
>        Advantages of the historical behaviour: clean ps output
>        Advantages of the suggested change: passing of information in the
>     init arguments via /proc/1/cmdline
>
>       Given that /proc/1/cmdline is not a standard Unix way of passing
>     information, and that the OP's program would thus *only* work with
>     the new-and-modified busybox init under Linux, making this change
>     nothing more than a hack;
>       Given that Unix already provides plenty of ways to pass information
>     from a process to its scions, and that the command line is only such
>     a way for programs specifically designed to perform chain loading,
>     which init is not;
>       Given that I have suggested an *easy*, safe, portable and perfectly
>     Unix-ish way of accomplishing what the OP wants without having to patch
>     anything;
>       Therefore, in this precise case, I don't think the change is worth it.
>
>       Seriously. Accusing *me* of following historical behaviours for the
>     sake of it. :D
>
>     --
>       Laurent
>
>     _______________________________________________
>     busybox mailing list
>     busybox at busybox.net <mailto:busybox at busybox.net>
>     http://lists.busybox.net/mailman/listinfo/busybox
>
>
>
>
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
>


More information about the busybox mailing list