Angeregt durch den Thread zu Bootzeitfortschritten bei Dapper hier: http://forum.ubuntuusers.de/topic/19550/
wollte ich einem Problem mit fluxbox und bootchartd auf den Grund gehen.
(Siehe Beitrag von Chrissss).
Problem war, daß ich trotz gemessener Bootzeiten von Grub bis arbeitsfähigem System von 75 sec. im bootchart immer 650 sec. angezeigt bekam - suspicious!
Da andere offenbar glaubwürdige Ergebnisse von 0,5 bis 3 Minuten erzielen, und nichts von Problemen berichten habe ich mich nochmal in die Skripte gestürzt, um zu verstehen wie sie arbeiten.
In /sbin/bootchartd finde ich folgendes:
# Wait for the boot process to end. wait_boot() { local pidof_path=/sbin/pidof [ -x /bin/pidof ] && pidof_path=/bin/pidof local runlevel=$( sed -n 's/.*:\(.*\):initdefault:.*/\1/gp' /etc/inittab ) # The processes we have to wait for local exit_proc="gdmgreeter gdm-binary kdm_greet kdm xdm" if [ "$runlevel" -eq "2" -o "$runlevel" -eq "3" ]; then exit_proc="mingetty agetty rungetty getty" fi while [ -f "$BOOTLOG_LOCK" ]; do if [ -n "$( $pidof_path $exit_proc )" ]; then # Give the exit process some time to start sleep 5 # Flush the log files stop return fi sleep 2 done; }
Der bootchart-Daemon wartet darauf, daß ein bestimmter Prozeß läuft, um zu sehen wann der Bootprozeß fertig ist.
Dabei sucht er nach einigen gnome- oder KDE-Programmen wie ... gdm-binary kdm_greet ....
Wird Linux im Runlevel 2 oder 3 gestartet - üblicherweise verwendet für nicht-grafische Logins, dann sucht er nach den Programmen, um sich auf der Konsole einzuloggen: mingetty agetty rungetty getty.
Ubuntu hat nun keck beschlossen in allen Runleveln von 2-5 grafisch zu booten, und per default Runlevel 2 zu nehmen.
Naja - ich hatte das dahingehend korrigiert, daß ich per default im Runlevel 5 starte, und dann wird nicht nach getty und Verwandten gesucht, sondern nach kdm, gdm-binary und anderen Programmen, die ich auch nicht starte.
Daher also!
Beim Fluxboxstart ist das System bei mir arbeitsfähig, nachdem der Bildschirmhintergrund geladen wurde.
Das macht fbsetbg.
Zur Sicherheit habe ich noch bash in meine Liste aufgenommen.
Offenbar klappt das mit fbsetbg nicht - womöglich läuft es zu kurz?
Nach fbsetbg wird auch ein Prozeß display gestartet, den ich nun auch aufgenommen habe.
Die betreffende Zeile habe ich also dahin geändert:
local exit_proc="fbsetbg display bash"
Was für XFCE die beste Methode wäre müßten dessen Nutzer herausfinden - mit Runlevel 2 ist man wahrscheinlich ohnehin auf der sicheren Seite.
Moderiert von SS2:
Thread nach "Window Manager" verschoben.