
The second rant is about *MySQL*. The =mysqld_safe= wrapper is a *ugly* *non-standards-compliant* hack. Or what would you call a daemon process that ignores SIGTERM?
Quote from the script: trap '' 1 2 3 15 # we shouldn't let anyone kill us
Maybe i should increase the serverity of this bug to "important", the maintainer has successfully ignored it for 333 days now.
I see no reason why the *wrapper* should ignore TERM. It's not like processes are sent a "TERM" randomly. I think this wrapper is just for stupid uses who start their mysql server in their shell, background it and wonder why it's gone when the logout... Actually, the *real* mysqld process does care about the TERM signal, and apparently the "shutdown" command is issued this way, too.
Secondly, mysql is a known process that prevents swsusp2 from working. You need to shutdown mysql first before you can suspend. Unfortunately, it doesn't shut down in 20% of the cases for me, but just keeps on running after breaking it's pid file... Guess i'll have to add a "killall mysqld" somewhere.
Don't let me get started on PHP, which IMHO is a quick-hack language you really should avoid when you intend to write nice, clean code. Just thing of the "register globals" thing, this language is not designed for clean things... (and a language being easy to learn and use certainly doesn't improve code quality. IMHO a good language should enforce clean coding styles. Albeit i'm not a fan of Java, one has to admit that it forces authors to write read- and maintainable code. PHP doesn't. PHP "coders" tend to intermix layout and code; putting all your data into a SQL database and calling inefficient queries certainly isn't the best way of storing your data either...
Time for a rant again. I've been playing around with init for some time, i think i have a concept that can do everything i want to do (easy enabling and disabling of services, dependencies, easy-to-use runlevels for things like "suspend mode", "laptop mode" etc., easy extensibility for bootsplash, service monitoring and respawn, good conffile management (especially upgrades and leftover configfiles)
Albeit a lot of things have alread been done, i bet that a lot of packages do still call /etc/init.d/something and not =invoke-rc.d= (which would allow me to disable services more easily) - this is especially annoying during upgrades, when processes call "stop" and wonder when my init just respawns the service.
I won't go the full way like DjB or Fefe - my init is not designed for embedded systems, and starting a shell to start a service is okay for me.
I'm playing around with evolution from unstable.
Now that it doesn't crash all the time for me again, i often launch it, since i havn't found a way in =mutt= to provide me with such a nice overview over the amount of unread mails.
But one thing that really scares me, since the gnome clock applet also relies on this information (and the process storing it)
Evolution data server - which doesn't have any gui at all AFAICT, still links against about all gnome libraries - does eat up more than 80 MB of RAM on my machines. And evolution-alarm is quite close, too with 68 MB.
The maildir the data server "monitors" have about 43 MB, since i move the mails into an unmonitored trash dir after 30 days.
So *what the hell do evolution-data-server and evoution-alarm actually need this memory for*?
Seems to me like the Gnome People should add a new focus (i really like their user interfaces, please ignore the most famous gnome troll, ogalaxyo, and his goneme). Not everything is about user interfaces, but a sensible use of resources is also necessary for good applications.