Systemd to the rescue
blog.achernya.com
blog.achernya.com
Having done a LOT of research on init systems over the last few months, systemd was the most controversial but also the nicest to use. I look forward to its introduction in Ubuntu.
Thanks you systemd, all I had to was to create two systemd units, for hostapd and the NetworkManager connnection setup, and declare a hard dependency on the USB wifi adapters. This was possible thanks to the udev integration - you can simply declare a dependency on a device just like you would do for a service. systemd would then cleanly stop the particular unit if the device disappeared, and start it once it re-appeared.
Of course, I could have done something similar using just udev and a service supervisor, but systemd made it as simple as adding a few lines to my unit description files. It was a rather unusual use case, and I was amazed at how easy it was to implement it.
What rankles people is not journald pr say tho, but its tight coupling with the rest of the systemd ensemble.
You can't tell systemd to not start journald and just do logging via syslog or whatever you have been using. You still have to run journald in a pass through form.
Meaning you can't introduce systemd parts piecemeal, you only get the whole glob or not at all.
Use that risky mess if you want. I'm sure it will work great in most cases. Just remember that some of us value stability and a proven track-record more than fast searching. Especially when log parsers give us the fast searching too.
If you could use journald as a stand-alone log parser that slurped up and indexed the syslog, it might be a very useful tool. Forcing s reversal of sane design when it is not necessary is either is either a sign of inexperience or an "embrace and extend" existing methods.
The source doesn't matter, because corruption happens. Bugs happen, hardware fails, attackers try to cover their tracks. The bug I (and the original reporter in this bug report) are referring to is journald's behavior when corruption happens: shove the log aside and start from scratch. Even worse, the attitude that ignoring corruption is "not a bug" is insane.
Yes, fixing a corrupt binary database (even a simple one) is going to be very hard. What they fail to mention is that the reason they are face with this difficult problem was their decision to use that kind of format in the first place. When faced with the realities of their bad design choices, pretending there isn't a problem is not the correct answer. The correct way to handle that bug report should have been either fixing the bug (make journalctl able to handle corrupt logs), changing previous bad designs (drop the format that makes this a problem), or at a bare minimum recognize that this is a serious problem for some people and leaving the report open if it cannot be fixed right now.
Given that this kind of external corruption has a very good chance of being the very reason you have to search the logs, how a logger acts in that kind of situation is of key importance.