LoginSignup
1
0

More than 5 years have passed since last update.

【学習メモ】daemontoolsでreadproctitle service errorsを誤ってkillしたら

Posted at

はじめに

readproctitle service errors: ...が出て、そのプロセスをkillしたら、defunctが発生して何度もrunのexecを実行する状態になりました。

ここでは発生する原因は追及しません.

initctl restart svscan

で直りました。
当然といえば当然ですが。

/command/svscanboot/の子プロセス\_svscan /serviceと並んで、readproctitle service errors: ...が出ますが、これは出たままでも動作するようです。

環境

CentOS 6.9
daemontools 0.76

実行ファイル
/tmp/test_proc/run

起動
cd /service ; ln -s /tmp/test_proc test_proc

消したあとにやったこと

test_procの子プロセスを削除すると、本来ならrunに書かれたexecが起動するはずですが、defunctになってしまいます。

表示例
\_ supervise test_proc
   \_ [run] <defunct>

svc -dx test_procで再起動しても、一瞬起動してすぐにdefunctになります。その後起動とdefunctを繰り返します。

test_procの起動時間
# svstat test_proc
test_proc: up (pid 15324) 1 seconds
# svstat test_proc
test_proc: up (pid 15333) 1 seconds
# svstat test_proc
test_proc: up (pid 15338) 1 seconds
# svstat test_proc
test_proc: up (pid 15344) 1 seconds

こうなると、/tmp/test_proc/superviseを削除したり、/service/test_procをアンリンクしたりしてもdefunctが発生してしまいました。

ただし、/tmp/test_proce/run &は正常に起動します。

結局initctl restart svscanで元通りになりました。

参考資料
daemontools HOW-TO (α版)(www.emaillab.org)
daemontools のページ(www.unixuser.org/~euske/)
daemontools で defunct な multilog が生まれる現象を再現しようと試みたメモ(blog.livedoor.jp/sonots/)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0