ログアウト後にリモートCentOS 7サーバーでサービスを維持する方法は?

ログアウト後にリモートCentOS 7サーバーでサービスを維持する方法は?

リモートCentOS 7 WebサーバーでSpring Bootアプリケーションを実行しようとしています。このWebサーバーは、最初の日からApacheとスタンドアロンのTomcatインスタンスでアプリケーションを正常に提供しています。ただし、リモートサーバーに接続してSpring Bootアプリケーション(独自の組み込みTomcatインスタンスを含むjarにあります)を起動すると、接続が有効になっている間にsshSpring Boot Webサービスは正常に実行されますが、セッションが終了すると終了します。 jarsshsshjarセッションが終了した後も含まれている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/someurlpatternssh

答え1

バックグラウンドでプロセスを実行し、sshセッションを閉じます。

これを行う方法はいくつかあります。

nohup1.コマンド

このコマンドを使用すると、シェルプロンプトを終了した後に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

screen3.コマンド

この目的でこのコマンドを使用することもできますscreen

関連情報