2016-03-24 10 views
1

ジョブの終了後も持続するデーモン(lsyncd)を実行できるJenkinsで仕事をしています。このデーモンはSSHエージェントの下で実行する必要がありますので、SSHエージェントを設定できるJenkinsのプラグインをインストールしました。Jenkinsが処理を終了したときに私のSSHエージェントが死ぬ

lsyncdデーモンが実行され、正常に動作しますが、ジョブが終了するとSSHエージェントが消滅し、デーモンがもう動作しなくなっているようです。

Jenkinsにジョブ終了後もエージェントを有効にしておくように指示する方法を知っていますか?

敬具、 ベン

答えて

0

私はあなたがプラグイン「SSHを介して公開」のようなものを使用していると仮定しています。

デーモンを直接起動するコマンド(SSHシェルではありません)を実行する代わりに、SSHを使用してbashのような新しいシェルを作成するコマンドを発行する必要があります。次に、このbashシェルでデーモンを実行します。終了したら、まだシェルをアクティブにする必要があります。したがって、sshエージェントは終了しません。

あなたは

+0

(タイムアウトなしを意味または0、)長いタイムアウトにSSHエージェントのジェンキンスジョブにタイムアウトを設定する必要があります答えてくれてありがとう。どのようにSSHエージェントのジェンキンスジョブでタイムアウトを設定しますか?私はちょうど "SSHエージェント"チェックボックスを持っています。あなたの資格情報を選択するためのリストボックスと、もう一つのチェックボックス "資格情報が見つからないのを無視" –

+0

@ benjamin.cohen-solal SSH経由で別のマシンにコマンドを送るのにどんなプラグインを使いますか? "SSHを介して公開する"を見て、それはあなたのsshセッションを制御しています。 – Ray

+0

"SSHエージェントプラグイン"を使用してエージェントから資格情報を設定しています。シェルコマンド "ssh -A myhost mydaemon"を実行しています。このプラグインではビルド設定でSSH接続を設定する必要がありますが、ジョブパラメータに資格情報を送信しなければならないので、プラグインSSHプラグインを使用しません。 –