】コマンド——シェルのジョブテーブルからジョブを削除する本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、シェルのジョブテーブルからジョブを削除する「disown」コマンドです。本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、シェルのジョブテーブルからジョブを削除する「disown」コマンドです。実行例ジョブをシェルから切り離すHUPシグナルだけを送らないようにするdisownコマンドとは?「disown」は現在のシェルで実行中のジョブを管理しているジョブテーブルから、ジョブを削除します。実行に時間がかかるコマンドなど、「シェルを終了させても、終了させたくないジョブ」がある場合に使用します。disownはbashやzshが備えるビルトインコマンド(シェルの組み込みコマンド)です。]は省略可能な引数を示しています。コマンドラインでは、ジョブの単位で実行を停止させたり、バックグラウンド/フォアグラウンドに切り替えたりします。ジョブについては「“応用力”をつけるためのLinux再入門」の第14回を参照。%番号」としたときは、指定した番号のジョブを同じく削除します。ログアウトや仮想端末の終了などでシェルを終了しても、コマンドの実行を継続させたい場合に使用します。ジョブテーブルからカレントジョブを削除する活用例については、nohupコマンドを解説した第137回を参照。-a(画面1)(全てのジョブをジョブテーブルから削除する)disownコマンドの働きはジョブをジョブテーブルから削除すること。プロセスは消えずにそのまま残っています。画面1では、バックグラウンドジョブとしてsleepコマンドを3つ実行し、disownを実行しています。sleepコマンドは指定した秒数だけ待つ、というコマンドでここでは単に“実行に時間がかかる処理”として実行しています。「ps」コマンド実行時には、「-o」オプションを使ってプロセスID(pid)と親プロセスのID(ppid)、端末(tt)、コマンドライン(cmd)を表示しています。disownコマンドを使ってジョブテーブルからジョブを削除したところ目次に戻るHUPシグナルだけを送らないようにするシェルと一緒に終了させたくはないけれど、ジョブテーブルには残したいという場合は「-h」オプションを使用します。するとHUPシグナルが送られなくなります。「-a」オプションと併用することも可能です。-h」した上でbashを終了しています。bashのビルトインコマンドであるjobsでジョブテーブルを表示するとジョブとしては残っています。「-h」によってHUPシグナルが送られないため、sleepコマンドはそのまま実行されています。disownを実行していない場合は、画面3のように、bashが終了するとsleepコマンドも終了しています。めぐみ)PC-9801NからのDOSユーザー。toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。