アンパサンド(&)記号は「nohup」とはどういう意味ですか?


11

&コマンド文字列の末尾にaが続く例をたくさん見ましたが、それが何をするのか説明が見つからないようです。nohupmanページにもありません。これは甲羅のものですか?

使用して&もしなくても、実行されたプロセスはnohupハングアップシグナルに対して耐性があるようです。


1
「nohupで実行されたプロセスは、ハングアップシグナルに対して耐性があるようです。」それがnohupの目的です。
サミュエルエドウィンワード

[OK]を、ので、私は明確にしましょう:唯一の例私は使い方を見てきました&、場合、私はわからなかったので、&作ったこと修飾子またはarguementのいくつかの並べ替えたnohupすべての動作が異なりますが。
チャドハリソン

1
それは疑うべき合理的なことです。実際、それは動作nohupを変更しません(nohupはそれを見ることさえしません)が、シェルの動作を変更します。
Samuel Edwin Ward

nohup&->ハングアップなしとその背景。モデムとシリアル端末の古き良き時代から。端末とモデムがオフラインになった場合は、バックグラウンドで処理を続け、次回オンラインになったときにジョブが完了するようにします。
Fiasco Labs

回答:


19

bashのマンページから:

コマンドが制御演算子&によって終了された場合、シェルはサブシェルのバックグラウンドでコマンドを実行します。シェルはコマンドが完了するまで待機せず、戻りステータスは0です。

だから、はい、それはシェルのものであり、任意のコマンドで使用できます。基本的には、すぐに制御を返し、コマンドをバックグラウンドで完了することができます。nohup通常、コマンドを開始した後にシェルを終了するため、これはほとんどの場合に使用されます。


4
最近あなたがたくさんの良い答えを投稿しているのを見てきました。私の脳は常にあなたのユーザー名をMcGuyverに翻訳します。なぜあなたにこれを言う必要があると思うのかわからない。
MDMarra

1
@MDMarra私はそれを褒め称えます;-)
mgorven '26 / 06/26

1
@MDMarra少なくともあなたは考えていません:「McGruber」
ワード-モニカを復活させる

7

アンパサンド(&)を使用すると、子プロセス(現在のbashセッションの子)でコマンドが実行されます。ただし、セッションを終了すると、すべての子プロセスが強制終了されます。

nohup +アンパサンド(&)を使用しても同じことが行われますが、セッションが終了すると、子プロセスの親が「init」プロセスである「1」に変更され、子が強制終了されないようにします。


3

はい、それはシェルのことです-それはバックグラウンドでコマンドを実行するので、現在のコマンドが戻るのを待たなくても、次のコマンドを発行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.