SSHが閉じても、サーバー上でプロセスを実行し続けます。

SSHが閉じても、サーバー上でプロセスを実行し続けます。

私は基本的にJavaプログラムのJarファイルである長いプログラムをサーバー上で実行しています。 SSH端末を閉じてもこのプログラムを実行したいのですが、このプログラムをサーバーで実行し続けるにはどうすればよいですか?

答え1

2つの異なる方法:

  1. 有効nohup- nohupでプログラムを起動してプログラムを実行し続けると、すべての出力が現在のディレクトリのファイルnohup /path/to/program &にリダイレクトされます。nohup.out
  2. サーバーにこれらのいずれかがインストールされている場合、またはを使用しますscreentmuxこれは、次回のログイン時に再接続できるように1つ以上のシェルを実行し続ける方法です。これはnohupよりも強力なユーティリティです。man screenまたはman tmux詳細をご覧ください。

答え2

nohupを使用せずに起動されたプロセスを実行し続ける方法は次のとおりです。

大規模なアーカイブの解凍を開始し、家に帰りたいとしましょう。

$ tar -xzf bigfile.tar.gz

プロセスをバックグラウンドで送信するには、ctrl-zを押します。 「jobs」と入力してEnterを押すと、プロセスのジョブ番号(おそらく1)が表示されます。

次に、次のようにします。

$ disown %1

答え3

screenまたはtmuxが動作します。

たとえば、参照してください。http://www.jeffstory.org/wordpress/?p=132使い方のクイックチュートリアルです。

答え4

一度も使ったことはないけどApacheデーモン、あなたがしたいことをすることもできます。 Javaプログラムをバックグラウンドプロセスとして実行します。

それから私は使うでしょうトッププロセスを監視し、リソースが多すぎる場合は終了してください。

htop apt-getをインストールする必要があります。

sudo apt-get install htop

その後実行

htop

プロセスが表示されたら、リストからそのプロセスを選択し(矢印キーを介して)、キーを押してプロセスを終了できます。

f9, k 

関連情報