| systemd is somewhat better than upstart on some fronts, and equally bad or worse in others. For instance, I like upstart init files much better that systemd "services". Their ini-like syntax is very limiting if you need embedded scripts. I'm looking at you, PreExec. Wrapping everything through "sh -c" looks hideous, and it's not an advantage. upstart init files with logrotate's syntax are way more readable. The "script" blocks avoid the "sh -c" escaping madness for you. both upstart and systemd don't "get" live system debugging. I complained loudly both on debian and on the systemd mailing list, but people don't seem to grasp the concept: If my system doesn't boot (no console), I'm f$#@. The daemon is waiting for some event to occur, but I have no clue which one. With standard init, there are very few commands to respawn. The system is much more robust. getty on a local tty is part of them, and as such I never had a system where I couldn't debug startup issues. With upstart/system, if I have an issue with udev (very common between updates), I do not get anything, even though the system is ready enough to start one. What I need is a sysrq like binding for "force-start a getty now please". I need to be able to query init and ask "what even target are you /going/ to, which events are requisites and still not met? There are the obvious things you need to debug dependency-based systems. But you don't have them. No. But instead you can kill the running system, and reboot with "verbose boot". Because a scrolling terminal with 20 lines/sec helps apparently (hint: it doesn't - the system will still hang). So after that you can reboot once more, with init=/bin/sh and boot yourself. The same issues go for shutdown. I have nothing against systemd. Dependency-based boot is great. But both init systems seem to miss that a critical piece like init needs to be small, robust and debuggable. I'm running systemd on unstable. I've lost count of the times that the system didn't boot properly because of an udev change that incurs in a dependency loop. This should never happen. Shutdown doesn't work since two months if you have a cryptsetup system, again because of a stupid unmet dependency. Plus, again, systemd ini-file scripts are fugly. You need external scripts just to run Pre/Postexec. Many of the design decisions behind Lennarh are, IMHO, regrettable. This goes way beyond systemd in general. Fortunately systemd seems to be going forward somewhat, thanks to debian mostly, and like I said before, dependency-based boot is nice. |