[Armadillo:08089] Re: login ・exit を繰り返すとexitに時間が掛かる

中村 浩 email@hidden
2012年 6月 13日 (水) 08:44:35 JST


中村さん
 中村です。

 UNIX/Linux系の仕様なのですね。
 ありがとうございました。


--- On Wed, 2012/6/13, Yasuhisa Nakamura <email@hidden> wrote:

> 中村です。
> #質問者さんも「中村さん」なようなので紛らわしいですが・・・
> 
> これは、initプロセスによるrespawnコマンドの連続再起動制限に
> よるものですね。
> 
> 何秒間の間に何回連続起動されたら・・・という定数は
> 実装によって異なると思いますが、Armadilloに限らず、
> UNIX/Linux系のinitにはみな入っている機能です。
> 
> http://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-2.1.0/ch08.html#sec_execute_commands_automatically_by_the_inittab
> の「respawnアクションの実行間隔」に説明があります。
> 
> Armadilloで使われているinitはbusyboxです。
> busyboxのinitでこの部分がどのような実装になっているか?、
> というと、
> 
> busybox/init/init.c
> ....
> #define TESTTIME  90    /* Threshold for detecting "fast" spawning processes */
> #define MAXSPAWN  5     /* Number of rapid respawns that counts as too fast */
> #define SLEEPTIME 300   /* Fast spawn hold off period */
> #define DELAYTIME 5     /* Time between successive runs of a process */
> ....
>        now = time(NULL);
>        if (a->lastrun + TESTTIME > now)
>            a->runcount++;
>        else
>            a->runcount = 0;
>        if (a->runcount >= MAXSPAWN) {
>            a->runcount = MAXSPAWN-1;
>            a->nextrun = now + SLEEPTIME;
>            message(LOG, "Process '%s' (pid %d) is respawning "
>                    "too fast.\n", a->command, wpid);
>        } else {
> ....
> 
> というコードがありました。
> 
> このコードによれば、その現象が発生したときにsyslogに
> "Process xxxxxxxx (pid xxx) is respawning too fast."
> というログが残っていると思います。
> 
> 検査する時間や回数など、ソース埋め込みの値を使っていますので、
> 回避するためには、ソースコードを修正する以外にはないでしょう。
> 
> -- 
> なかむら
> 
> 
> 2012年 6月 12日(火)21:14 に 中村 浩 さんは書きました:
> > Armadillo-420、Linux(atmark-dist v1.28.1 (AtmarkTechno/Armadillo-420)
> > Linux 2.6.26-at15 [armv5tejl arch])で開発を行っております。
> >
> > Armadillo-420にシリアルコンソールを接続してlogin・exit を繰り返すと、
> >  4・5回目より、exit してから login を表示するまで約5分掛かります。
> >  exit・login を繰り返している間は5分掛かりますが、10分程度放置すると
> >  exit してから login を表示するまで10秒程度になります。また、exit・login 
> >  を繰り返すと、5分かかる状態が再現します。
> >  
> >  exit してから login を表示するまで約5分掛かる状態を回避する方策を
> >  ご教授ねがいます。
> >
> >  プログラムを起動していることも無く、単純に login(rootユーザ) して
> >  exit をくりかえすのみです。
> >
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 



armadillo メーリングリストの案内