シェルプロセスでプログラムを実行せずにbashシェルでプログラムを実行する方法

シェルプロセスでプログラムを実行せずにbashシェルでプログラムを実行する方法

bash シェルで Nemo を実行している場合は、Nemo プロセスを終了するまで、そのシェルで別のコマンドを実行することはできません。

それは私の問題です。他のシェルを開いたり、起動したプロセスを終了せずに他のコマンドを実行したいと思います。

答え1

exec Nemo

実行されませんNemo シェルサブプロセスでNemoつまり、シェルプロセスで実行されるので、シェルをNemo

しかし、それはあなたが望むものではないようです。

ここで望むのは、別のプロセスでコマンドを実行するようですが、シェルはそうしません。待つ次のプロンプトを発行する前に、プロセスを完了してください。

これを行うには、次のものを使用できます。

Nemo &

非同期で実行されますNemo。またNemo、Ctrl + Cを押すと端末から読み取られるか、SIGINTによって終了されるのを防ぐために、インタラクティブシェルで完了したときにバックグラウンドに配置されます。

コマンドはまだシェルのタスクリストにあります。を使用して前景に戻すことができますfg。また、シェルは終了時にそれを終了しようとします(少なくとも一部のシェルでは)。

含まれている一部のシェルでは、このコマンドを使用してシェルにそれを忘れるように指示することbashもできます。disownを使用すると、zsh次のように起動することもできます。

Nemo &!

バックグラウンドで開始し、すぐに拒否します。

答え2

バックグラウンドでコマンドを実行する方法を教えてください。

「&」を使用してそのコマンドを完了します。

例:

$ nemo &

関連情報