LoginSignup
1
0

More than 5 years have passed since last update.

Jenkinsのシェルスクリプトで特定のプロセスをkillして再起動する

Last updated at Posted at 2017-07-31

Golangアプリケーションのリリース

Jenkinsでビルド・デプロイしている人も少なくないかと思います。例えば私の場合はrevel(go言語)のアプリケーションを運用していますが、これまでアプリケーションのバージョンアップ時は次のような手順を行っていました。

  1. ソースをローカルでビルドしてリポジトリにプッシュ(手動)
  2. Jenkinsでデプロイ(半自動)
  3. サーバ上でアプリケーションを再起動(手動)

アプリケーション再起動の自動化

このうち、No.3の手順をJekinsのシェルから実行できるようにしたのでメモ。

PID=/sbin/pidof [対象のアプリケーション実行コマンド *1]
kill -9 $PID
sh run.sh

*1 ps auxの出力で確認できる

pidof

pidofはプログラムのプロセスIDを調べるコマンドです。/sbin/pidofといったようにフルパスで指定しているのは、Jenkinsが乗っているCIサーバからSSH経由で対象サーバ上でコマンドを実行する際に環境変数(PATH)が通常のSSHログイン後のものと異なるからです。このあたりは実際に試して見ると良いかと思います。CIサーバ上からSSH経由でコマンドを実行してみてコマンドがありませんといった旨のエラーが出たときはPATHを疑ってみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0