2000 年度「計算機基礎論3B」 キー入力を全く受けつけなくなってしまったら

どのウィンドウも受けつけませんか? もし受けつけるコマンドツールなどがあるなら、その中で 「ps -u $user」とします。 そして、あとは下の説明にならってください。

全部だめでも、マウスが動くなら、 プロンプトに戻っている(=プロンプトが表示されている) コマンドツールやシェルツールのウィンドウを終了してみましょう。 これで回復する場合もあります。

それでもだめなら、 別の WS にログインしましょう。 そしてコマンドツールかシェルツールの中から telnet ws?? とします。 ここで ws?? はおかしくなった WS の名前です。 プロンプトのところに出ているはずです。 もしプロンプトが見えない場合は、 WS は番号順に並んでいますから左右のマシンの名前を調べればわかるでしょう。 すると、 いつもはディスプレイ全体に出ていたログイン画面がウィンドウの中にでます。 いつもどおりにログインしてください。 そうすると、そのウィンドウの中は ws?? を見ていることになります。 別の言い方をすれば、そのウィンドウの中で ws?? を遠隔操作しているわけです。 そして「ps -u $user」とします。

※ 以下の出力例は 1999 年度のもの。

    ws43{iwase}12% telnet ws42
    Trying 133.28.21.52...
    Connected to ws42.
    Escape character is '^]'.


    UNIX(r) System V Release 4.0 (ws42)

    login: cf7175
    Password: 
    Last login: Thu Oct 21 19:09:30 on console
    Sun Microsystems Inc.   SunOS 5.5.1     Generic May 1996
    ws42{cf7175}1% ps -u $user
       PID TTY      TIME CMD
     17867 console  0:01 csh
     17914 console  0:03 Xsun
     17968 ??       0:00 cmdtool
     17915 console  0:00 sh
     17920 console  0:00 fbconsol
     17935 console  0:00 olwm
     17929 console  0:00 vkbd
     17913 console  0:00 xinit
     17932 console  0:00 ttsessio
     17951 pts/1    0:00 csh
     17936 console  0:00 olwmslav
     17909 console  0:00 openwin
     17992 console  0:01 mailtool
     17945 console  0:01 htt
     18001 pts/3    0:01 csh
     17983 console  0:01 filemgr
     17948 ??       0:00 cmdtool
     17944 console  0:00 htt
     17971 pts/2    0:00 csh
     17946 console  0:00 htt
    ws42{cf7175}2%
これが、いま自分が動かしているプロセス (「プログラム」とは少し違うらしいがよく説明できない) のリストです。 PID は「プロセス番号」と呼ばれます。

※ ここまではいつやっても何の害もありません。 よく自習する人は一度試して慣れておくといいかも。

このプログラムが悪さをしているな」 と思われるものをカンでさがし、 そのプロセス番号 nnnn を引数にとって 「kill -9 nnnn」とします。

    ws42{cf7175}2% kill -9 *****  ← この通り打つ人がいるといけないのでわざと伏せ字にしました
    ws42{cf7175}3%
こうやってゆくうちにうまくゆけば OK です。

隣の WS からログインしたときは exit でログアウトします。 プロンプトに出ている WS 名が変わっているのに注意してください。 (この例では ws43 側と ws42 側とでログイン名も別ですね。)

    ws42{cf7175}3% exit
    ws42{cf7175}4% ログアウト
    Connection closed by foreign host.
    ws43{iwase}13% 
実は、上の例はどこもおかしくない状態の WS に脇からログインしてウィンドウシステム自身(?)を kill したためログイン画面まで戻ってしまったのですが、 そのあと再ログインしようとしたら調子がおかしくて、 結局センターの人にお願いして直してもらうことになってしまいました。 だから、もし kill の練習をするなら cat とかのコマンド名がわかっているものでやったほうがいいでしょう。

こうやって回復したあとは、 いったんログアウトしてログインし直すのがよいでしょう。


岩瀬順一 <iwase@kappa.s.kanazawa-u.ac.jp>