[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 メーリングリストの案内