LoginSignup
0
0

More than 5 years have passed since last update.

無限forkの収拾方法

Posted at

これは前世紀のノウハウなので、今ではもっとまともな手段があるとか、現代のUNIXではこの手は使えないのかもしれない。

プロセステーブルオーバーフローになって、原因のプロセスをkillしたいが、プロセスが作れないので何もできない、ということがある。
コンソールログインは出来るがコマンドが一切起動できないというだけなら、対処はできる。

ログインできるということはそのログインシェルのプロセスは動いているので、exec コマンド名 でコマンドを実行する。コマンド終了に伴ってログアウトになるので、その都度ログインしなおす、という面倒くさいことをする。
この場合パイプが使えないので、いちいちファイルにリダイレクトする。
たとえば、本来は
ps -ほげ | less
で、プロセスを目で探してkillしたいのなら、
exec ps -ほげ >/tmp/file
再度ログイン
exec less /tmp/file
再度ログイン
kill プロセスID
(killは内部コマンドなのでexec不要)

この知識が役に立ったことは人生で1~2度しかない。

0
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
0
0