止ったままになっているSECONDSを終了させる方法


SECONDSの実行中にキーボードからControl-Z("Control"を押しながら"Z"を押す)と、 SECONDSの実行が中断(Suspended)されます。 これは終了させたのと違い、 まだ計算機のメモリ上にSECONDSが残ったままになっています。 ところが、SECONDSはシミュレーションのために大量のメモリを必要とします。 ですからSECONDSを中断させたまま放置しておくと、 メモリ不足により他のコマンド等が動かなくなってしまいます。

中断されたSECONDSがないかどうか調べてみましょう。 次の例のように、 キーボードからjobsと入力してみてください。

  user[host]% jobs
  [1]  - Suspended                     seconds
  [2]  + Suspended                     seconds
  user[host]% 
この例では、 2つのSECONDSが中断されていることを表しています(ひとつで十分ですよ)。 これらを終了させるには次の2つの方法があります。


1つめは、中断しているSECONDSを再開する方法です。 これには、次のように入力してください。

  user[host]% fg
すると
  seconds
と表示され、SECONDSの実行が再開されます。 このあとReturnを押してみてください。
  SECONDS>
と表示されましたか? 表示されていれば、 通常の方法でSECONDSを終了させてください。 もし表示されていなかったら、Control-Dを押してみてください。


2つめは、中断しているSECONDSを強制的に終了させる方法です。 これには、次のように入力してください。

  user[host]% kill %
すると次のように表示され、 一番最後に中断したSECONDSを強制的に終了します。
  [2]    Terminated                    seconds
この例では、2番目のSECONDSを終了したことを表しています。 先ほどと同じように確認してみると
  user[host]% jobs
  [1]  + Suspended                     seconds
  user[host]% 
中断されているSECONDSがひとつになっていることがわかります。 これがひとつもなくなるまで、くりかえしてください。


実はこれらの話は、UNIXのジョブ制御に関するものです。 もっと詳しく知りたい場合は、 UNIXの解説を探してみてください。


前に戻る
terry@am.ics.keio.ac.jp