課題背景
このような場面はありますでしょうか?
プログラムAを使って、計算を回したい! ただし、このプログラムは計算時間が長く、待っているのが嫌だ!
このときに役に立つのが、バックグラウンドプロセスです。
バックグラウンドプロセスとは?
ユーザーに見えない状態で動作しているプログラム
です。
例えば、
sleep 60
と記載されているmain.sh
があります。
このプログラムを実行すると、
この状態を60秒間待つことになります。
こうすると、
- 他の操作はできない
- EC2などの他のサーバー環境の場合、ログアウトもできない
など課題があります。
これを解決するのが、バックグラウンドプロセスです。
使い方
結論、
./main.sh >& log.txt &
これでOKです。
main.shを実行し、結果をlog.txt
に書き出してくれます。
上記のコマンドを実行後、ここでは64820
というIDを持って、PCが作業してくれています。
ps
コマンドを打つと、実際に作業されているプロセスが確認でき、該当する番号があることもわかります。
計算時間の長い作業するときは、ぜひ使ってみてください。