&
このbashスクリプトのafterコマンドが何をしているのかわかりません。
python alt_pg ${args} &
また、私が変更しているスクリプトの元のバージョンは、コマンドの開始時に「python」を使用していません。これは、「&」と関係がありますか?
&
行の最後に、python alt_pg ${args}
Linux シェルの下の「バックグラウンド」で実行されます。ただし、スクリプトは引き続きシェルに関連付けられています。したがって、シェルが停止すると、スクリプトも停止します。
補足: を使用して、シェルからスクリプトの関連付けを解除できますnohup python alt_pg ${args} &
。このようにスクリプトを生成すると、スクリプトはシェルからログアウトした後も存続します。
アンパサンドは、分岐/バックグラウンド プロセスでプロセスを実行します。
いいえ、それらは 2 つの別個のものです。
実行中のpython alt_pg ...
手段python
は で検索され$PATH
、alt_pg ...
引数として python に渡されます。次に、Python は という名前のファイルを探しますalt_pg
。実行alt_pg ...
手段alt_pg
は で検索され$PATH
ます。後者は、何をするかに応じて、Python をとにかく実行させる可能性がありalt_pg
ます。
コマンドの後に a を追加する&
と、コマンドがバックグラウンドで実行され、シェルalt_pg
がまだ実行中であっても、後続のコマンドを続行できます。