Using another startup method besides SysV: totally reasonable.

Lying to users by pretending that you are still using SysV when you are
not: jaw-dropping.

-josh

On Wed, Dec 31, 2008 at 04:49:23PM -0500, Jonathan Katz wrote:
> All,
> 
> I think this is a specific SLES 10 init hate. I don't know if RHAT or
> other perversions do this. And as I write this out multiple hates are
> foaming in my brain...
> 
> The software that my company makes, and that I install, support, and
> consult upon uses Oracle in the background. I know, this in and of
> itself is its own brand of hate. However, as we're probably well
> aware, in order to start Oracle two startup scripts must be launched,
> one for the Oracle Database software and the other for Oracle's TCP/IP
> listener, know as tnslistener. In troubleshooting an installation we
> found that the Oracle DB would start just fine but tnslistener would
> fail repeatedly acting as if the network isn't up and running. "That's
> Odd" I thought. The startup script is in /etc/rc3.d and by then the
> system should have the network up.
> 
> Well, I didn't realize it at the time, but runlevels are not always
> runlevels when it comes to Linux. See, in the sane, SYSV world that
> we're all accustomed to (Solaris, HPUX, etc.) rc3.d is run-level
> three, aka multi-user and by then the network is up and running on the
> system. It seems to be that way in SLES, too, but the network doesn't
> start in rc2.d, it starts in rc3.d. So our S01tnslistener script,
> which works on most other platforms, fails to work on SLES since they
> have S10network in rc3.d. OK, no biggie, a simple rename and a reboot
> and.... tnslistener fails again in exactly the same way.
> 
> "That's Odd" I ponder again, as the startup scripts are in the proper
> numerical order! After further research by the local Linux admin
> (since that's not my day job anymore) there were two pieces to the
> puzzle that I didn't have. First, the 'init' process has a
> "parallel_start" option. So this cute little bugger essentially gets
> to ignore the notion that startup scripts are cumulative and
> hierarchical. It just seems to fork() the startup scripts as quickly
> as reasonable regardless of what it cares about. But the geniuses at
> Novell(?) realized this could break things because they added
> functionality to the startup scripts. By including special comments
> you can declare dependencies. After that is done you use the chkconfig
> command to "register" the new startup script and then it will actually
> work.
> 
> What the fuck were these people thinking? We have a startup script
> standard (the SYSV startup standard) that has been around for almost
> 20 years. It provides an orderly method of starting a system up and
> allowing for dependencies to start first before their antecedents.
> "Let's make our system have better bogomips by using fork() ! We can
> start multiple things at once for a faster boottime so we can play
> quake!" So that's neat, so then they have to develop two more hacks on
> top of it to allow for dependencies in startup scripts, adding
> complexity and gaining a few moments of boot time.

Reply via email to