Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Comment Re:Nice Thing: systemctl status shows you log entr (Score 1) 928

Not much harder than rewriting all the services to log to systemd instead of calling syslog(), except that now they're still compatible with non-Linux servers.

Except that this feature of systemd doesn'trequire any rewriting of services, at all. They just carry on sending output to stdout, stderr, and/or syslog, as they have always done - and the "cgroups" feature ensures the logs can be distinguished and stored appropriately. Doing the same consistently for SysV init would actually be genuinely harder, because (for example) when services are started manually this is done by running a service-specific shell script - so to ensure each service ends up in the right cgroup, you have to add a lot of Linux-specific stuff to each service's startup file.

I'm not yet 100% sold on whether the log filtering is worth all the extra code implementing it - but saying it's "not a big deal" to add the same feature to sysvinit is not telling the whole story.

Comment Re:Thanks for making my point (Score 1) 928

Many hardware failures are transient, and a process restart is a very effective fix, at least in the short term

Not to mention crashes caused by rare, hard-to-reproduce race conditions. These do happen (correct multi-threaded programming is hard), and personally I'd prefer it if the process crash didn't take down my websites with it - though of course I do want the logs to let me know, loud and clear! Sure, if the service crashes repeatedly on restart, it needs to be throttled, but I assume systemd can do that (after all, this is one of the things SysV init has always done, at least for getty processes).

Comment Re:It freakin' works fine (Score 2) 928

Funny that rc dealt with that ages ago by having S01mount S05network S10networkmount but I'm sure there's a very good reason systemd is incapable of using mount -a -t nfs,cifs,smb,afs,etc,

Really? I confess I haven't looked at how to configure systemd much, but from what I have seen, that sort of setup could be supported easily enough by writing the right unit files (or whatever they're called) and specifying the dependencies. What's the issue that prevents that working?

Comment Re:Why at a place of learning? (Score 1) 1007

Interesting, I did not say Science proved, I said Religion did not.

I thought you were implicitly saying that one did what you said the other did not. I still think that's what you meant and this post is backpedalling.

Indeed, the syllogism in funwithBSD's post doesn't follow unless one adds an implicit "[but the other one does]" to the first two sentences.

Comment Re:How about we hackers? (Score 1) 863

What Sys V does isnt dependency checking, it is simply an order of execution.

Right - it's not true dependency checking, but it is a way of encoding the the startup dependencies (which is why it's done, after all).

True, you could put something in one that hangs the thing, I did myself by accident once but its a very easy fix

True again - and this is exactly the point; once you do this, and cause the boot process to stall before the point where you can log in, you're just as broken under any init system :)

it takes two minutes to come up with a timeout strategy if you want one. Here Ill try ok.

Sure, anyone can come up with a timeout script that will (effectively) declare a service "ready" if a certain time limit is reached - but again, that will work equally well with any init system. (And did you have a timeout in place for your accidental "sleep 20000"? It's the sort of thing that's easy to add, but usually only with hindsight ;-). Also I think you want $$ rather than $?.

Doing your own dependency checking IS trivial

Everything's trivial until you've actually tried it ;-). You can quite quickly do something approximating it, but doing the useful parts (e.g. "start this service, plus everything it needs" - and, better still, "if I were to ask you to start this service, what else would you need to start?") requires a lot more work. In particular, it needs a concept of knowing which services are currently started, which SysV init lacks.

Comment Re:How about we hackers? (Score 1) 863

I can guarantee it because sys V init doesnt enforce dependencies

Actually it does, in a clumsy kind of way: you give the services a priority, and services with a lower priority are started before those with a higher priority. So if you have an early-starting service (eg bringing up filesystems) that blocks for a long time, that will delay later-starting services (eg sshd) just as much. If you're lucky, your system's rc scripts may implement a timeout - otherwise you're just as hosed under SysV init as under smf/systemd...

It wasnt that the vendor (this is Solaris if you remember)

You didn't mention Solaris, only smf, so you could equally have been talking about, say, an Illumos-based distribution... but thanks for clarifying :)

got the dependencies wrong. The dependencies are actually right if you look at it from one perspective (user audit logs should be preserved) and wrong if you look at it from another perspective (I am not interested in standard unix auditing logs and need sshd up)

True.

With systemd type systems the vendor has to choose one and can not know which is right for might feel differently on different occasions.

Alas the same is true in practice for SysVinit. And in fact, systemd has better support for overriding the defaults from the vendor/distro packages - though I've never actually used it, so I don't know how well it works in practice.

If you need dependency checking it is trivial for an administrator to set that up using the sys V model.

In practice it's far from trivial.

Comment Re:How about we hackers? (Score 1) 863

Point 1. No. I guarantee that on a sys V init system I would have been able to log in and easily see that a filesystem that should have been mounted wasnt mounted and then diagnose and fix it.

I can't see how you can make that guarantee. The problem with ssh not starting up was due to the distro/vendor encoding dependencies badly. That can be done just as well with SysV init as with any other system. Depending on how the local "rc" script (or equivalent) is set up, this can lead to the machine hanging indefinitely for no good reason (I've seen it happen enough times!). Alas no init system can protect you from dumb decisions by distros/vendors :-/

Point 2. Indeed but /etc/inittab tells you all the places you need to look and you can go and look at them and read them. Sorry but that seems rather tidy to me.

It points you to the location of some shell scripts that you have to read and parse in order to find where your particular flavour of *nix stores its Snn* and Knn* symlinks, then look at those... to me that doesn't seem a lot better than having to look at the manpage to find the damn files, but you are entitled to your preference :-)

Comment Re:How about we hackers? (Score 1) 863

It was when I discovered that sshd startup was dependent on utmp being available which depended on filesystem mounting being successful that I knew for sure that systemd style init was nothing I wanted.

How would this have been any different with SysV init? That would have translated into sshd being started later than the filesystem, utmp etc - so you'd have had the same issue. In fact it can end up being worse, because a higher-numbered service can end up being delayed by a lower-numbered one, even if it doesn't have any dependency on it at all...

For me, scanning through /etc/inittab and being able to see exactly what is going on in the initialisation stage is the essence of Unix.

But /etc/inittab only tells a tiny part of the story; you also need to look in /etc/init.d, /etc/rc*.d etc - so not really all that different to what you'd have to do with systemd (except that at least with SysV init you presumably already know where to look ;-)

Comment Re:replacing line feeds with terminators is not a (Score 2) 169

46 lines (statements), actually

No, statements are not the same as lines. Lines have real semantic significance in BBC Basic, in a few different ways: for one, GOSUB-type subroutines can only start at the start of a line (because that's where the line number is), and you also can't terminate an "if" without starting a new line. That (plus the 256-byte limit) makes writing one-liners in the language more of a challenge than in other languages where line breaks genuinely aren't significant.

Comment Re:Because they don't want to. (Score 2) 265

... and may chance you didn't read my post: (There was a LOT more to my presentation that just this; this single part presented here to convey the concept).

The trouble is - the single part that you presented is clearly broken (eg it doesn't work well with the way many mailing lists work), so if it conveys the concept of your whole presentation, people are naturally going to assume that the whole presentation was broken...

Slashdot Top Deals

The use of money is all the advantage there is to having money. -- B. Franklin

Working...