web-dev-qa-db-ja.com

SSHが閉じている場合でもサーバーでプロセスを実行し続ける

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

7
user68537

2つの異なる方法:

  1. Nohupを使用-Nohup /path/to/program &でプログラムを開始すると、Nohupはプログラムを実行し続け、出力は現在のディレクトリのファイルNohup.outにリダイレクトされます
  2. どちらかがサーバーにインストールされている場合は、screenまたはtmuxを使用します。これらは、1つ以上のシェルを維持して、次にログインしたときにそれらに再アタッチできるようにする方法です。これは、Nohupよりもはるかに強力なユーティリティです。詳細については、man screenまたはman tmuxをご覧ください。
20
Jenny D

以下は、Nohupを使用せずに、すでに開始したプロセスを実行し続ける方法です。

大きなアーカイブの解凍を開始し、帰宅したいとします。

$ tar -xzf bigfile.tar.gz

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

次に行います:

$ disown %1
2
Buttle Butkus

Screenとtmuxのどちらも機能します。

それを使用する方法の簡単なチュートリアルについては、例えば、 http://www.jeffstory.org/wordpress/?p=132 を参照してください。

1
Borut Mrak

私は Apache Daemon を使用したことがありませんが、それはあなたが望むことをするかもしれません。 Javaプログラムをデーモンとして、バックグラウンドのプロセスとして実行します。

次に htop を使用してこのプロセスを監視し、リソースが多すぎる場合は停止します。

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

Sudo apt-get install htop

次に、

htop

プロセスが表示されたら、リストで(矢印キーを使用して)プロセスを選択して強制終了し、次にを押して強制終了できます。

f9, k 
0
Starkers