Respawning too fast
The screen was full of messages that read:
INIT: id "T0" respawning too fast: disabled for five minutes
Not used to seeing the server console covered with errors, no one on-site was sure how severe the problem was or what to do about it. In fact, no one knew whether respawning was a normal thing or what was being disabled time and time again. And no one knew where these messages were coming from. For the Unix sysadmins, the importance of the init process is clear as was the fact that this particular message was being generated by the init process. The "mother" of all processes, init is responsible for orchestrating the boot process and for determining what happens on a system whenever it is shut down or switched to another run state (such as singleuser).
Killing init is one of the time-proven big bad mistakes that can halt a system very unceremoniously. In the old days, this mistake usually involved typing "kill 1 1" as root when a sysadmin meant to type "kill -1 1". The latter command sends a hangup signal to the process, urging it to re-read its configuration file; the other slashes its virtual throat. Respawning is the opposite of killing. Respawning is the process of restarting a process when it fails for some reason. The T0 message, on the other hand, probably doesn't ring bells with many people. So let's look at what T0 refers to and where it's defined. To do this, let's first look a bit more deeply at init. The init process should be running all the time. It is the parent of many processes started at boot time. In the listing below, for example, the processes whose parent process (PPID) is 1 were started by init during the boot process and init itself appears in the third line of output.
> ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 0 Apr 03 ? 0:00 sched
root 1 0 0 Apr 03 ? 0:50 /etc/init -
root 2 0 0 Apr 03 ? 0:00 pageout
root 3 0 0 Apr 03 ? 143:16 fsflush
root 350 1 0 Apr 03 ? 0:00 /usr/lib/saf/sac -t 300
root 166 1 0 Apr 03 ? 0:00 /usr/lib/inet/in.ndpd
root 60 1 0 Apr 03 ? 0:00 /usr/lib/sysevent/syseventd
root 226 1 0 Apr 03 ? 0:02 /usr/lib/autofs/automountd
On many Unix systems, such as Solaris and Linux, init has a configuration file named inittab. This colon-delimited file details the script(s) that init will run when used to change runs states. If init is told to shut down a system with the command "init 0", for example, init will read the line that specifies what it should do when initiating run state 0. On a Solaris system, most of the lines in the inittab file will look like these two lines:
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog /dev/msglog 2<>/dev/msglog
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
jfruh
Apple syncing patent can't come soon enough
pasmith
New Twitter features borrow from 3rd party clients
Esther Schindler
Open Source Changes the Software Acquisition Process
mikelgan
How to set up continuous podcast play on the new iTunes
David Strom
Five important Windows 7 mobility features
sjvn
Guard your Wi-Fi for your own sake
Sandra Henry-Stocker
Grepping on Whole Words
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.













