アプリ版:「スタンプのみでお礼する」機能のリリースについて

UNIXのKtermを開いて、あるシェルを実行したのですが、
実行後、プロンプトが返って来ません。
KtermにてCNTL+D、CNTL+C、Delete等を押しても
効きません。

プロンプトが返ってくるのと返らないのでは、システム的にどのような違いがあるのでしょうか?

A 回答 (2件)

シェルスクリプトの実行がきちんと終了していないのではないでしょうか。


ためしにもう一つKtermを起動してpsコマンドを実行してください。
プロセスが残っているようでしたらスクリプトの再確認をしましょう。

ちなみにプロンプトが返ってこない状態というのはフォアグラウンドのプロセスが終了していない状態で、次のコマンドが入力できないという弊害がありますね。

#Ctrl+Cが効かないとなると永久ループにはまっているのかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。助かります。

お礼日時:2001/11/18 13:23

> プロンプトが返ってくるのと返らないのでは、


> システム的にどのような違いがあるのでしょうか?

何通りか考えられると思います。

1つは、実行したプログラム内でCtrl-Cを無視するように
してある場合です。ディストリビューションにくっついてくる
一般的なコマンドでは余りそういうことは無いように思いますが、
Ctrl-Cを無視するようにプログラム内で設定することは可能です。

もう一つは、プログラムがOSから強制的にスリープさせられて
いる場合です。ディスクなどのデバイスの読み込み・書き込みの
順番待ち、メモリ領域確保(に異常があってメモリが確保できない)、
ネットワーク接続要求に対する応答待ちなどの理由で、
これらの要求をOSに出したプログラムがOSから「ちょっと待て」
と言ってスリープさせられることがあります。

通常の状態では起こりませんが、ディスクなどデバイスの異常、
AGPなど特殊なメモリドライバの異常、ネットワーク接続先ホストが停止、
ネットワーク障害、などでこのような状態になることがあります。
psコマンドでプロセスの状態を見たときに、状態が"D"になっていると
OSからの強制スリープ状態です。

Ctrl-Cで止まらないプロセスに対しては、

kill -9 xxxx
(xxxxはpsコマンドで調べたプロセスのプロセスID)

killall -9 process_name
(process_nameはプロセスの名前)

で止められることが多いです。(ただ、後者の場合、同じ名前の
プロセスが全部止まります。)

他にもいくつか理由はあると思われます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています