課題背景
このような場面はありますでしょうか?
プログラムAを使って、計算を回したい! ただし、このプログラムは計算時間が長く、待っているのが嫌だ!
このときに役に立つのが、バックグラウンドプロセスです。
バックグラウンドプロセスとは?
ユーザーに見えない状態で動作しているプログラム
です。
例えば、
sleep 60
と記載されているmain.shがあります。
このプログラムを実行すると、

この状態を60秒間待つことになります。
こうすると、
- 他の操作はできない
- EC2などの他のサーバー環境の場合、ログアウトもできない
など課題があります。
これを解決するのが、バックグラウンドプロセスです。
使い方
結論、
./main.sh >& log.txt &
これでOKです。
main.shを実行し、結果をlog.txtに書き出してくれます。

上記のコマンドを実行後、ここでは64820というIDを持って、PCが作業してくれています。
ps
コマンドを打つと、実際に作業されているプロセスが確認でき、該当する番号があることもわかります。
計算時間の長い作業するときは、ぜひ使ってみてください。