On Tue, 15 Jul 2014 10:32:16 -0500 Les Mikesell lesmikesell@gmail.com wrote:
On Tue, Jul 15, 2014 at 10:18 AM, Jonathan Billings billings@negate.org wrote:
It also is significantly less-featureful than a shell programming language. Yes, you're going to be using shell elsewhere, but in my experience, the structure of most SysVinit scripts is nearly identical, and where it deviates is where things often get confusing to people not as familiar with shell scripting. Many of the helper functions in /etc/rc.d/init.d/functions seem to exist to STOP people from writing unique shell code in their init scripts.
Yes, reusing common code and knowledge is a good thing. But spending a bit of time learning shell syntax will help you with pretty much everything else you'll ever do on a unix-like system, where spending that time learning a new way to make your program start at boot will just get you back to what you already could do on previous systems.
Les, I could re-use your logic to argue that one should never even try to learn bash, and stick to C instead. Every *real* user of UNIX-like systems should be capable of writing C code, which is used in so many more circumstances than bash. C is so much more powerful, more expressive, immensely faster, covers a broader set of use-cases, is being used in so many more circumstances than bash, is far more generic, and in the long run it's a good investment in programming skills and knowledge.
Why would you ever want to start your system using some clunky shell-based interpreter like bash, (which cannot even share memory between processes in a native way), when you can simply write a short piece of C code, fork() all your services, compile it, and run?
All major pieces of any UNIX-like system were traditionally written in C, so what would be the point of ever introducing a less powerful language like bash, and doing the system startup in that?
And if you really insist on writing commands interactively into a command prompt, you are welcome to use tcsh, and reuse all the syntax and well-earned knowledge of C, rather than invest time to learn yet-another-obscure-scripting-language...
Right? Or not?
If not, you may want to reconsider your argument against systemd --- it's simple, clean, declarative, does one thing and does it well, and it doesn't pretend to be a panacea of system administration like bash does.
HTH, :-) Marko