0

&このbashスクリプトのafterコマンドが何をしているのかわかりません。

    python alt_pg ${args} &

また、私が変更しているスクリプトの元のバージョンは、コマンドの開始時に「python」を使用していません。これは、「&」と関係がありますか?

4

3 に答える 3

7

&行の最後に、python alt_pg ${args}Linux シェルの下の「バックグラウンド」で実行されます。ただし、スクリプトは引き続きシェルに関連付けられています。したがって、シェルが停止すると、スクリプトも停止します。

補足: を使用して、シェルからスクリプトの関連付けを解除できますnohup python alt_pg ${args} &。このようにスクリプトを生成すると、スクリプトはシェルからログアウトした後も存続します。

于 2012-08-03T13:35:54.183 に答える
3

アンパサンドは、分岐/バックグラウンド プロセスでプロセスを実行します。

于 2012-08-03T13:35:36.697 に答える
3

いいえ、それらは 2 つの別個のものです。

実行中のpython alt_pg ...手段pythonは で検索され$PATHalt_pg ...引数として python に渡されます。次に、Python は という名前のファイルを探しますalt_pg。実行alt_pg ...手段alt_pgは で検索され$PATHます。後者は、何をするかに応じて、Python をとにかく実行させる可能性がありalt_pgます。

コマンドの後に a を追加する&と、コマンドがバックグラウンドで実行され、シェルalt_pgがまだ実行中であっても、後続のコマンドを続行できます。

于 2012-08-03T13:36:38.553 に答える