Init : someone could comment this ?
Enrico Scholz
enrico.scholz at informatik.tu-chemnitz.de
Tue Jan 8 12:10:27 UTC 2008
Nils Philippsen <nphilipp at redhat.com> writes:
> 1. process 1 (p1) prepares the service
> 2. when finished, p1 forks p2 which will be the long-runner, controlling
> any eventual children
> 3. p1 exits
>
> This seems to be a standard procedure for self-detaching daemons to
> me.
That's the old forking-daemon way. Most modern initsystems work best
with non-forking daemons.
> I've often had to chain multiple of these to get the desired results --
> but that's more a matter of convenience (perhaps my bash is just too
> rusty and it can be done more elegantly). What matters more to me (this
> came to mind only yesterday while driving home) is that if you do:
>
> cat $somefile | while read line; do ... done
>
> variables set in the while loop have no effect outside of it, or if you
this effect is known and this example can be written as
| while read line ... done < $somefile
But we are speaking about preparation scripts of daemons. Do you really
need such tasks there?
> except OSError, e:
> # clean up OS error
> ...
> except SomeException, e:
> # do something else
> sys.stderr.print "Warning: doing foo failed, continuing (%s)" % str (e)
> except:
> # panic!
> sys.stderr.print "Error: %s" % str(e)
> sys.exit (42)
>
> I don't know if any of this is necessary for init code, but these are
> some things that I miss or find cumbersome in shell.
I do not say that shell shall be used for everything. I just say that
python is not an option for any part of sysinit which should be written
completely in C. (ba)sh plus usual POSIX/GNU tools are the optimal
choice for preparation tasks, but these are no deps of the sysinit
system itself but of the specific daemon.
Enrico
More information about the devel
mailing list