Macをサーバーにしてjenkins jnlpデーモンを起動させたとき、謎にterminatedになる現象

現象

Macをビルドサーバーとして、Jenkinsのjnlp slaveを起動していたのですが10数分〜1時間ぐらいで接続が切れる。

jnlp slaveはnohupとlaunchdでの起動試したがどちらも接続が切れる

jnlp slaveをフォアグラウンドで起動していると接続は切れない

masterのログをみても以下のようにしかでない

コネクションが切断されました。

<br>
java.nio.channels.ClosedChannelException<br>
	at org.jenkinsci.remoting.protocol.NetworkLayer.onRecvClosed(NetworkLayer.java:154)<br>
	at org.jenkinsci.remoting.protocol.impl.NIONetworkLayer.ready(NIONetworkLayer.java:142)<br>
	at org.jenkinsci.remoting.protocol.IOHub$OnReady.run(IOHub.java:795)<br>
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)<br>
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)<br>
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)<br>
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)<br>
	at java.lang.Thread.run(Thread.java:748)<br>

slave側のログをみても、「terminated」としか書いてない。

psコマンドでプロセスを見るとプロセスは生きている

原因

ssh接続を切っている間に、Macが自動スリープしていた

Macで画面共有を有効化しているとき、ssh接続をするとスリープモードから自動復旧するらしく、利用者側からはスリープしてるようにみえなかった

Macがスリープするので、プロセスも一時停止する→jnlp接続が切れる

対策

Preferences->省電力->ディスプレイがオフの時にコンピューターをスリープしない

にチェックをいれるだけ

感想

1週間ぐらい悩みました。つらい

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.