質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

548閲覧

VPSにgit pushを行なった際に自動デプロイをしたい

RyomaK

総合スコア14

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

1クリップ

投稿2018/03/18 14:44

編集2018/03/19 12:12

## ローカルからVPSにgit push した際に自動でデプロイしたい.
ssh設定などは終わり,ローカルからgit push {{作成したremote}} masterでVPS上のコードが書き換わるようになりました.
方法としてはgit hookspost-receiveでローカルからVPSにpushした際にその変更に対してgit pullしています.
pullした後に元の実行プロセスをkillしてgoのコードをビルドしてバックグラウンドで新しく実行させたいのですが,
問題が二つあります.

ps aux | grep {{元実行されていたプロセスの名前}} | grep -v grep | awk '{ print "kill -9", $2 }' | sh

をpost-receive内で実行した際に,

fatal: The remote end hung up unexpectedly error: error in sideband demultiplexer

が出てしまう事

バックグラウンドで実行させる為にpost-receive上でnohup make run & しているのにもかかわらず,sshを切断すると,webのプロセスが閉じてしまう事です.(VPS上で同じコマンドを叩くとうまくいきます)

(post-receive)

sh:

1#!/bin/bash 2export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:/usr/local/go/bin 3cd {{webアプリのディレクトリ}} 4git --git-dir=.git pull origin master 5ps aux | grep {{元実行されていたプロセスの名前}} | grep -v grep | awk '{ print "kill -9", $2 }' | sh 6nohup make run &

(Makefile)

run: go build -o ./cmd/main ./cmd/main.go ./cmd/main -dbconfig $(DBCONFIG) -addr $(ADDR)

どのような可能性があるのか教えていただきたいです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobonobo

2018/03/19 08:23

./cmd/circle/circle とはどのようなものですか?
RyomaK

2018/03/19 12:08

main.goをコンパイルして生成されたバイナリファイルを実行するものです.ごめんなさい,便宜上全てmainに書き換える予定だったのですが変更し忘れていました.
guest

回答1

0

ベストアンサー

$ nohup make run &

標準出力のディスクリプタが close された事を検知してしまうからじゃないでしょうか?

$ nohup make run &>/dev/null &

で試して貰えますか。

投稿2018/03/23 06:18

mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RyomaK

2018/03/31 11:58

できました! なるほど!closeを検知してしまうのですね! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問