GoでWebアプリを書いて、

端末から、


#コンパイル appはファイル名
go build -o app

#サーバ起動
./app
2016/04/07 08:45:05 Webサーバーを開始します。ポート:  :8080

これで一度サーバを開くでしょ。


go_server_kill_conf


ブラウザでアプリが立ち上がっていることもわかる。


このサーバでCtrl + ZでSIGTSTP(プロセス停止)を行う。


プログラムを修正して再度サーバを立ち上げようとすると、


go build -o app
./app
2016/04/07 08:44:20 Webサーバーを開始します。ポート:  :8080
2016/04/07 08:44:20 ListenAndServe:listen tcp :8080: bind: address already in use

先ほど立ち上げたサーバはすでに使われているとなる。

おかしいなぁ…


一応ブラウザでサーバが立ち上がっていないか調べてみると、


go_server_kill_err


サーバは終了しているらしい。


とりあえず、プロセスを確認してみると、


ps
PID TTY          TIME CMD
4734 pts/5    00:00:00 bash
4757 pts/5    00:00:00 app
5783 pts/5    00:00:00 ps

appが残ってた。

そういや、サーバを止めるとき、終了ではなく停止だった。


ということで、


#appのプロセスをkill
kill -KILL 4757

./app
2016/04/07 08:44:20 Webサーバーを開始します。ポート:  :8080

プロセスをkillしてから、再度サーバを立ち上げたらできた。


ブラウザでサーバが立ち上がっているかを表示すると、


go_server_kill_conf


Webアプリの画面が表示された。

これでサーバが再度立ち上がったことがわかる。


サーバを終了した後、再度立ち上げようとしてエラーになったら、

とりあえずプロセスをkillすればよいのね。


関連記事

土壌分析アプリsoil2 by Go