バックグラウンドでアプリケーションを実行すると、どのような利点がありますか?

バックグラウンドでアプリケーションを実行すると、どのような利点がありますか?

バックグラウンドでアプリを実行すると、どのような利点があるのか​​わかりません。コマンドラインを介して同じです
Application &

一体なぜバックグラウンドでアプリを実行するのですか?いつこの仕事をすることに決めるべきですか?

ベストアンサー1

通常、実行に時間がかかりすぎてユーザーの対話を必要としないアプリケーションは、端末で作業を続けるためにバックグラウンドで送信されます。

バックグラウンドで実行されるジョブは、STDOUT、STDIN、およびSTDERRが異なることを除いて、フォアグラウンドで実行されるジョブと同じように処理されます。

ファイルの圧縮やバックアップなど、時間がかかる作業がある場合は、その作業をバックグラウンドで送信できます。

jobsコマンドを使用して、バックグラウンドで実行されているジョブを一覧表示できます。

$ ./job1.sh &
[1] 9747
$ ./job2.sh &
[2] 9749
$ ./job3.sh &
[3] 9751
$ jobs
[1]   Running                 ./job1.sh &
[2]-  Running                 ./job2.sh &
[3]+  Running                 ./job3.sh &

ジョブがバックグラウンドシェルに送信されるたびに、プロセスの合計がここに表示されますjob idpidプロセスを前景に戻すには、fgコマンドを使用してプロセスを再開できます。

$ fg 1
./job1.sh

ただし、ターミナル(シェル)を閉じると、SIGHUPがシェルで作成されたすべてのバックグラウンドプロセスに送信され、そのプロセスが終了することに注意してください。これを回避するには、disownコマンドを使用して作業テーブルからこれらのプロセスを削除して、プロセスが終了するのを防ぎます。

nohup最良の方法の1つは、SIGHUP信号がプロセスを終了せずにバックグラウンドで安全に実行されるようにコマンドを使用してバックグラウンドプロセスを開始することです。

huponexitbashシェルでオプションを設定して、SIGHUPが子プロセス(bgジョブ)に転送されるのを防ぐこともできます。

$ shopt -s huponexit

このオプションは、最新バージョンのBashでデフォルトで設定されていますが、設定されていない場合は、このオプションを追加してデフォルトの動作~/.bashrcにすることができます。

おすすめ記事