バックグラウンドでプログラムを実行すると、nohupと画面が機能しませんか?

バックグラウンドでプログラムを実行すると、nohupと画面が機能しませんか?

理由はわかりませんが、screenサーバー上で実行されていたコマンドはそれ自体停止しました。だから、例えば次のように使ってみましたnohup

nohup bzcat a.bz

しかし、走るとnohup私に

nohup: ignoring input and appending output to `nohup.out'

また、再開するには、fg次を実行します。

-bash: fg: current: no such job

答え1

メッセージはnohup完全に大丈夫です。ただそれが何をしているのかを説明するだけです。 nohupを使用してプログラムを実行すると、端末に入力した内容は使用されなくなり、端末に何も印刷されません。nohupプログラムの出力をnohup.out

nohupこれは、バックグラウンドで実行されるプログラム(バックグラウンドで実行されている場合bzcat a.bz &)とはかなり異なります。プログラムがバックグラウンドで実行されている場合、端末の入力は無視されます。 (フォアグラウンドで実行されているプログラムだけが端末に入力した内容を使用できます。これがユーザーが実際にやり取りするプロセスなので、「フォアグラウンド」プロセスと呼ぶ理由です。 with process) with) が端末に出力されます。 nohupモードとバックグラウンドでプログラムを実行できます。実際には通常、このようにnohup使用されます。プログラムがあるがnohupバックグラウンドで起動しないと、fg実際にはバックグラウンドではないので呼び出すことはできません。端末に出力されません。

nohup信号を無視するモードでプログラムを実行できますHUPHUP端末は通常、端末を閉じると信号を送信します。したがって、nohupモードでバックグラウンドで実行されているプログラムは、そのプログラムを起動した端末を閉じても停止しません。

関連情報