an idea for patch of the /etc/init.d/rc script
Hi folks,
I'm very new to debian development, but I'm old debian fan. I don't know
is that the right list for suggestions because I'm really new. Please
somebody to read that mail and to show me the right way :)
Also my english is not very good, so please excuse me for the hard reading.
Anyway, Last few days I waste my time to install a debian on my mobile
pc. After that I found that ACPI daemon is not installed by default
(probably that's OK) and I done that. But when I boot my PC I found that
all the boot procedure is very very slow (something like 20-30 seconds
with all the stuff installed), and when the ACPI daemon is started, some
regions of the PC are very risky hot. So I start to think how the boot
procedure can go faster, and I figured out.
There are two solutions for my problem, one is concrete, and the second
is general.
The concrete solution is acpid to go from S20acpid to S10acpid. In that
case will skip most of the waiting.
The general solution is to fix a little the RC boot script. My idea is
following:
Some of the startup scripts does not depend on each other. For example –
starting of mysql and postgresql does not depend. So why we don't do it
in parallel?
If we place the same number id's for S[0-9][0-9]* links for each scripts
that can be started in parallel, that will faster the whole process.
For example:
dequila:/etc/rc2.d# ls S20*
S20acct S20exim4 S20netatalk S20sslwrap
S20acpid S20festival S20nfs-kernel-server S20tcpspy
S20cpudyn S20hddtemp S20openct S20vdr
S20cpufreqd S20ifplugd S20oss-preserve S20wpasupplicant
S20cpufrequtils S20inetd S20postgresql S20xend
S20cupsys S20irda-utils S20postgresql-8.0 S20xfs
S20dbus-1 S20makedev S20samba S20xprint
S20dirmngr S20mysql S20ssh
All of them can be started in parallel.
There is a patch following example patch to /etc/init.d/rc:
dequila:/etc/init.d# diff rc rc.org
71,78d70
<
< # Now lets read all the S files
< for i in /etc/rc$runlevel.d/S*
< do
< numid=${i:1:2}
< rcscr[$numid]="${rcscr[$numid]} $i"
< done
<
80,82c72
< for numid in {0..99}
< do
< for i in ${rcscr[$numid]}
---
> for i in /etc/rc$runlevel.d/S*
104c94
< startup $i stop &
---
> startup $i stop
107c97
< startup $i start &
---
> startup $i start
111,113d100
< # Let wait for childs to end
< wait
< done
The advantage is that the boot procedure goes real faster. In my case it goes from 30 seconds to less than 10. The only disadvantage is that error messages in some cases goes out of order. But I believe it is fixable. That was a problem (a little, but existing) in the previous boot system too.
That patch works fine for me, and I hope it will be included in the unstable distribution. Can somebody says an opinion and what I have to do, to publish that patch?
Reply to: