web-dev-qa-db-ja.com

bashのforkおよびexec

Bashでforkとexecを実装するにはどうすればよいですか?

スクリプトを次のように仮定します

echo "Script starts"

function_to_fork(){
sleep 5
echo "Hello"
}

echo "Script ends"

基本的に、Cでfork呼び出しとexec呼び出しを使用するように、その関数を新しいプロセスとして呼び出すようにします。

スクリプトから、親スクリプトが終了し、5秒後に「Hello」が出力されることが予想されます。

67

シェルの場合と同じようにアンパサンドを使用します。

#!/usr/bin/bash
function_to_fork() {
   ...
}

function_to_fork &
# ... execution continues in parent process ...
111
mob

どうですか:

(sleep 5; echo "Hello World") &
31
Jubal