Tuesday, December 18, 2012

init: Id "co" respawning too fast: disabled for 5 minutes

From Linux syslog (i.e., /var/log/messages), we have found the following repeated messages:
  • Dec 17 04:21:41 myserver init: Id "co" respawning too fast: disabled for 5 minutes
As usual, we have taken action to investigate it.  Here is the report on what we have found.

The Culprit


The serial ports[2] in Linux are named ttyS0, ttyS1, etc. The /dev directory has a special file for each port. Type "ls /dev/ttyS*" to see them. Just because there may be (for example) a ttyS1 file, doesn't necessarily mean that there exists a physical serial port there.

For our issue, it turns out to be:
  • ttyS1 physical serial port is not present on our host myserer
To find out if a physical serial port is present or not, you can test it in two ways:
  1. Using setserial command
  2. Using dmesg command

Output from setserial Command


As shown below, we can tell that ttyS0 is present, but not ttyS1:
[aroot@myserver oracle]# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
[aroot@myserver oracle]# setserial /dev/ttyS1
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3

Output from dmesg Command


As shown below, only ttyS0 is printed by dmesg:
[root@myserver ~]# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

The Solution


Because ttyS1 is absent, that is why the following line in /etc/inittab is failing and causes the re-spawning:
  • co:2345:respawn:/sbin/agetty 9600 ttyS1
When a process re-spawns too many times, it will be disabled for sometime by the kernel to keep the host stable. Following message is the result of that:
  • init: Id "co" respawning too fast: disabled for 5 minutes
As there is no ttyS1, the fix for our issue is:
  1. $su aroot
  2. #vi /etc/inittab
    • Commenting or removing the line for co
  3. #init q
You can verify that inittab is re-read by Linux kernel from the following line:
  • Dec 17 23:49:40 myserver init: Re-reading inittab
in Linux syslog.

No comments: