slocate地獄

あるスクリプトのバグでcronプロセスが止まったままになっていたので、刺さってるプロセスをkillallしたら、えらいことになった。

# pstree -la
init) 
...
  |-crond) 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   |-crond) 
  |   |   |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |   |   |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |   |   |   `-slocate) /etc/cron.daily/slocate 
  |   |   |       `-slocate) -u -c 
  |   |   `-sendmail) -FCronDaemon -i -odi -oem root 
  |   `-crond) 
  |       |-run-parts) /usr/bin/run-parts /etc/cron.daily 
  |       |   |-awk) -v progname=/etc/cron.daily/slocate ...
  |       |   `-slocate) /etc/cron.daily/slocate 
  |       |       `-slocate) -u -c 
  |       `-sendmail) -FCronDaemon -i -odi -oem root 
[snip]

処理が重いことで有名なslocateプロセスがこんなに!
このマシン、Pentium 266MHzの旧式なノートPCなんでこんな負荷を掛けたらぶっ壊れるんじゃないかと思ってヒヤヒヤしたけど、どうにか正常に処理されたらしい。
その後root宛に10数通のcronメールが一気に届くことに。一番古いので3カ月以上前のものもあった。