リモートCentOS 7 WebサーバーでSpring Bootアプリケーションを実行しようとしています。このWebサーバーは、最初の日からApacheとスタンドアロンのTomcatインスタンスでアプリケーションを正常に提供しています。ただし、リモートサーバーに接続してSpring Bootアプリケーション(独自の組み込みTomcatインスタンスを含むjarにあります)を起動すると、接続が有効になっている間にssh
Spring Boot Webサービスは正常に実行されますが、セッションが終了すると終了します。 jar
ssh
ssh
jar
セッションが終了した後も含まれているSpring Boot Webサービスを引き続き実行するには、どの具体的な手順を実行する必要がありますか?ssh
SSHセッションを使用して数百マイル離れたdevboxからアプリケーションを起動するときに入力する内容は次のとおりです。
[ ~]$ cd /path/to/webservice
[ webservice]$ kill $(lsof -t -i:9000)
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[ webservice]$ java -jar mywebservice.jar
Apacheはサービス要求を内部的に転送するため、セッションが終了するまでport 9000
サービスはApache URLを介して外部の世界に公開されます。somedomain.com/someurlpattern
ssh
答え1
バックグラウンドでプロセスを実行し、ssh
セッションを閉じます。
これを行う方法はいくつかあります。
nohup
1.コマンド
このコマンドを使用すると、シェルプロンプトを終了した後にnohup
コマンドを実行できます。
例:
$ nohup java -jar mywebservice.jar > /path/to/webservice/logs/mylogfile.txt &
## exit from shell or close the terminal ##
$ exit
2.bashdisown
コマンド
disown
別のオプションは、次のコマンドを使用することです。
例:
$ java -jar mywebservice.jar > /path/to/webservice/logs/mylogfile.txt &
[1] 10685
$ disown 10685
$ ps
PID TTY TIME CMD
10685 pts/0 00:00:00 wget
10687 pts/0 00:00:00 bash
10708 pts/0 00:00:00 ps
$ logout
screen
3.コマンド
この目的でこのコマンドを使用することもできますscreen
。