前提・実現したいこと
Jenkinsにて、CI/CDを実装しております。
1) GITからソースを取得して、ビルド 2) 1)で生成したjarファイルを検証サーバにコピー 3) 既存jarプロセスをKILL 4) jarを再起動
という手順で行っております。
上記手順の3)で「pkill」にて既存jarプロセスをkillしようとしておりますが、
jenkinsジョブが失敗してしまいます、、、
コンソールから実行するとうまくいくのですが、、、
発生している問題・エラーメッセージ
「前提・実現したいこと」に記載してある手順の
3) 既存jarプロセスをKILL
にてうまくいかず困っております。
pkill -SIGKILL -f hoge-.*\.j\ar || true
上記のように、コマンドを組んでおり、pkillコマンドが失敗しても、後続のtrueで成功するように
しているのですが、trueまで来ないで、jenkinsジョブが失敗して終了してしまします。
お聞きしたいことは下記2点です。
・pkillが失敗だったとしても、後続のタスクは実行したいのですが、方法はございますでしょうか?
・pkillによって、対象プロセスがkillできているのに、jenkinsジョブが失敗となるのはなぜでしょうか?
該当のソースコード
手順の2)3)に該当するshellソースです。
shell
1target_path=/tmp/hoge-${API_VERSION}.jar 2ssh -t -t user1@xx.xx.xx.xx "expect -c ' 3 set timeout 60 4 spawn sudo su -c \"cp -f $target_path /home/user1; pkill -SIGKILL -f hoge-.\\*\\\\.j\\ar || true\" 5 expect \":\" 6 send \"abcdef\n\" 7 expect \" \" 8 wait 9'"
参考になりそうなサイト
stack over flow
上記サイトで同様な事象で困っている人を見かけたのですが、解決策の提示までは至っていないようです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/03 04:34
2018/09/06 03:58