Skip to content

Latest commit

 

History

History
43 lines (29 loc) · 1.22 KB

011-bg.md

File metadata and controls

43 lines (29 loc) · 1.22 KB

bg

bgは、ジョブをバッググラウンドで実行する。

実際に使ってみよう。なにか時間がかかるコマンドを実行したとする。

$ cat /dev/urandom

このコマンドは思ったより実行に時間がかかるようでなかなか終了してくれない。Ctrl-Zを押してプロセスをサスペンドしてシェルに戻ろう。

[Ctrl-Z]
$

ここでbgを使うと、バックグラウンドでサスペンドされていたプロセスが実行を再開する。

$ bg

結果は悲惨なものになるだろう。そしてバックグラウンドで実行しているのでCtrl-Cも効かない。端末の実装にもよるがまともに操作できなくなるだろう。別の端末からプロセスcatをkillしてお片付けしよう。

$ kill $(ps -e | grep cat | awk '{print $1}')

やれやれひどい目にあった。

ちなみにジョブはシェルに紐付いているので、別のシェルでbgを実行しても意味がない。

$ vi
[Ctrl-Z]
$ (bg)
$ echo 意味がない

歴史的な経緯によると、bg, fg, jobsはKornShell由来なのだそうだ。

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bg.html