inittab からプロセスをrespawnさせる時はフォアグラウンドで実行する

良く考えたら当たり前なんだけど。(使ってないからわからないけど、daemontools から起動するときもたぶん同じ理由でフォアグラウンドで起動しているはず)

sshd などは実行すると親プロセスから切り離してバックグラウンドで動いてしまうので、いつものようにdaemonで起動しようとするとinitから大量に起動してmessagesに以下のようなエラーが出る。
(sshd の場合はlisten port が重複して2つ目以降のプロセスは起動に失敗して、実際には1つしか起動されないけど)

Feb  2 14:07:10 localhost init: Id "ss" respawning too fast: disabled for 5 minutes


なので、何かしらのオプションをつけてフォアグラウンドで起動させると良い。
例えばsshd の場合は-d (debug オプション)をつけてフォアグラウンドで実行するなど。

  • /etc/inittab
ss:2345:respawn:/usr/sbin/sshd -d