web-dev-qa-db-ja.com

nohup vs screen-長時間実行するプロセスにはどちらが良いですか?

背景:データベーススキーマを変更する長時間実行スクリプトがあり、移行後にチェックしたい出力があります。これをファイルに書き込みたいと思います。

私はNohupとscreenに関するスタックオーバーフローを読んでいます。私は両方を試しましたが、両方について懸念があります。

IN: プロセスをバックグラウンドとして実行し、決して死なない方法

彼らは、Nohupを使用し、PuTTYがプロセスを終了したと述べました。これはどのようにして可能ですか? Mac OS X端末を使用して複製することができませんでした。

screenでは、ctrl + a、dの代わりにexitと入力するのが怖い

また、画面使用時にターミナルアプリを終了しただけでは、状態が保持されているようです。

画面の方が良いソリューションのようです。何故ならそれらをたくさん開いて状態に戻す方法は本当に気の利いたものだからです。

私の状況で何を勧めますか?スクリプトをもう1か月ほど実行していません(リリースがある場合)。画面をもっと使いやすくして、それだけに固執するべきでしょうか?

17
Chris Muench

どちらにも独自の+と-があります。

Nohup:

  1. Nohupは、procがhttpdサーバーやその他のサーバーprocなどのユーザー入力を必要としない場合に、バックグラウンドでprocを実行する場合に使用すると便利です。
  2. Nohupはproc実行のディレクトリにログを作成します。ログファイル名のデフォルトはNohup.outです。
  3. 誤ったctrl + C、ctrl + Dが原因でprocが強制終了されるのを防ぎます。ただの警備員。
  4. 通常、デフォルトで基本セットアップでインストールされます。画面のように個別にインストールする必要はありません。
  5. この機能は、ジョブをバックグラウンドで実行して出力をダンプすることに非常に固有です。メモリを大量に消費します。

画面:

  1. 個別にインストールしました。あなたはデータセンターに行くことも、ログインすることもできません
    任意のボックスと期待画面が存在します。
  2. 別々のサブジェクトで複数の端末を管理し、それらに名前を付けるのに適しています。
  3. ターミナルマネージャーの詳細であり、Nohupのようにprocを無限に実行するコマンドではありません。
  4. Procがユーザー入力を必要とする場合に適しています。インストールのように
    スクリプト、はい/いいえプロンプト。
  5. 機能のトーンで、それはメモリです。しかし、同意した、いくつかは本当に素晴らしい機能です。

結論として、どちらも異なるアジェンダで作成された2つの異なるものであるため、比較は困難です。

乾杯!

19
mrtipale