nohup vs.スクリーン


39

過去には、nohup大きなバックグラウンドジョブを実行してきましたが、多くの人々screenがこのコンテキストで使用していることに気付きました。screen私が知らない何らかの機能的な利点を提供しますか、それとも単に好みの問題ですか?

回答:


25

両方とも独自のプラスとマイナスがあります:

nohup:

  1. nohupは、Webサーバーやその他のサーバープロセスなど、ユーザー入力を必要としないプロセスをバックグラウンドで実行するのに適しています。
  2. nohupは、プロセス実行のディレクトリにログを作成します。ログファイル名はnohup.outです。
  3. 誤ったCtrl+ Cまたは同様のキーの組み合わせによりプロセスが強制終了されるのを防ぎ ます。ただの安全装置。
  4. 通常、基本セットアップでデフォルトでインストールされます。画面のように個別にインストールする必要はありません。
  5. その機能は、バックグラウンドでのジョブの実行と出力のダンプに非常に固有です。低メモリ集約型。

画面:

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

@rahmu、それを殺したいなら、私は決してpidを推測しません。誰か/何かを殺す前に確認してください;)。

screenとnohupの両方の場合の最良の方法は次のとおり ps -eaf | grep "nohup" | grep "your proc name/keyword"です。

画面を使用して、画面で実行されているものを確認します。

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


20

画面には多くの機能があります。プロセスを「デーモン化」するだけでなく、端末用のウィンドウマネージャーのようなものです。

プロセスが何らかの時点で入力を必要とする場合に使用できます。プロセスの出力を確認して、ターミナルに再接続することができます。

いいえ、それは単に好みの問題ではなく、まったく同じものではありません。


4
出力も確認できnohup [...] > fileName.log 2>&1ます。さらに、出力が失われないことを意味します。
サルダスリオン

1
私はスクリーンの説明が好きです:「端末用のウィンドウマネージャー」!
リクマリ

7

screen できること:

  1. 実際の実行中の画面に戻り、信号を送信し、速度を確認し、エラーメッセージがあるかどうかを確認します。
  2. 意味のあるタイトルを持つ名前プロセス。1つのプロセスを強制終了する場合は、そのプロセスIDについて推測する必要はありません。

-2
  1. プロセスの進行状況はnohup、データベースフィールドデバッグでも確認できます。
  2. ps ax | grep nohup プロセスのIDが表示され、それを強制終了できます。
  3. nohupより速いです。単純な理由は、PCとサーバー間のインターネット接続に依存するためです。インターネットが遅くなるたびに、プロセスも遅くなります。

2
ポイント3がわかりません。詳しく説明してください。
mattdm

1
ポイント2は間違っています。
ジグガンジャー

#2は、実行中のnohupプロセスが1つしかない場合にのみ、強制終了するプロセスを表示します。それ以外の場合は、複数表示されます。どちらの場合でも、ポイント2は完全に間違っているわけではありません。
Anil_M
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.