&この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がまだ実行中であっても、後続のコマンドを続行できます。