10代と話して驚いたこと

お世話になります。

あるサーバーをバックグラウンドで起動しようとしていますが、起動途中で止まってしまいます。ログを見ると、特にエラーもなく、まさに「止まっている」感じです。
jobsで状態を見るとStoppedになっています。
bg %1 で再開しようとしても、コマンド自体は正常に終了しますが、jobsを叩くとあいかわらずStoppedのままです。
ps -lで見ると、ステータスはTになっていて、これをmanコマンドで調べると「ジョブ制御シグナルにより、もしくはトレース状態にあるため、プロセスは停止されている」と説明されていますが、正直意味が分かりません。

pflagsを取ってみると以下のようになっています。
> -bash-3.00# pflags 902
> 902: /usr/jdk/instances/jdk1.5.0/bin/java -Xmx512m -XX:NewRatio=2 -Dcom.sun
> data model = _ILP32 flags = MSACCT|MSFORK
> /1: flags = STOPPED
> why = PR_JOBCONTROL what = SIGTTIN
> sigmask = 0x00000004,0x00000000

おそらくは
> /1: flags = STOPPED
> why = PR_JOBCONTROL what = SIGTTIN

というところがポイントだと思うのですが、正直初心者なためこの情報から次のステップを思いつけずにいます。

明示的に止めているわけでもないのに、jobがStoppedになってしまう理由というのは何が考えられるでしょうか。
私が次にするべきアクションはどういうものがあるでしょうか。

よろしくお願いいたします。

A 回答 (1件)

おそらくこれでしょう。


SIGTTIN - バックグラウンドプロセスが端末から読もうとした
バックグラウンドのプロセスグループがユーザー入力待ちとなって停止。シェルの機能を使ってフォアグラウンドにすることで入力が可能。

バックグラウンドにするなら、入力待ちにならないようにします。
    • good
    • 0
この回答へのお礼

なるほど!多分それです!!!
確かにこのサーバーは、起動の後にしばらくしてからパスワードを尋ねてくるようなものだったような気がします。

ありがとうございました!!!

お礼日時:2009/03/03 11:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報