Best way to use dhcpc / avahi without delaying other init scripts ?

Harald Becker ralda at gmx.de
Tue Apr 30 23:47:38 UTC 2013


Hi Avery !

>The & sign implies the need for a fork anyway.

One fork yes, this is the required fork, but ...

> As far as I know, all modern shells are smart enough to avoid
> double-forking in this case.

Modern shells? You mean like bash? Yes! ... but I'm not sure if Busybox
ash knows about that optimization.

That is ( ... ) forks a subshell with the main shell immediately waiting
until subshell has finished. ( ... ) & forks into background, than
forks again in background to run a subshell. { ... } & forks once to
run the group of commands in the forked shell.

To verify: Use GNU /bin/ps --forest in the examples above. (...)& gives
three shell processes, where {...}& shall only give two shell
processes. Test with bash and Busybox ash and see difference. I did
this with older Busybox versions, but don't think anybody improved
subshell forking in ash.

>:)

Nice to have optimizations, but better to know how to optimize for all
shells, not only modern ones. Small change, big performance hit.

--
Harald


More information about the busybox mailing list