※ ChatGPTを利用し、要約された質問です(原文:jobがstoppedになる理由)
jobがStoppedになる理由と対処法
このQ&Aのポイント
質問文章では、サーバーをバックグラウンドで起動しようとした際に、起動途中で停止してしまう現象が発生しています。
jobsコマンドで確認すると、プロセスの状態がStoppedになっていることがわかります。
ステータスがTになっていることから、ジョブ制御シグナルによりプロセスが停止されている可能性があります。明示的に停止していないのにStoppedになる場合は、SIGTTINというシグナルが関係している可能性があります。解決方法としては、プロセスの制御を行う必要があります。
お世話になります。
あるサーバーをバックグラウンドで起動しようとしていますが、起動途中で止まってしまいます。ログを見ると、特にエラーもなく、まさに「止まっている」感じです。
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になってしまう理由というのは何が考えられるでしょうか。
私が次にするべきアクションはどういうものがあるでしょうか。
よろしくお願いいたします。
お礼
なるほど!多分それです!!! 確かにこのサーバーは、起動の後にしばらくしてからパスワードを尋ねてくるようなものだったような気がします。 ありがとうございました!!!