68user's page 掲示板

Prev< No. 2741〜2744> Next  [最新発言に戻る] [過去ログ一覧]
No. 2741 # バクモン 2002/06/12 (水) 19:05:24
はじめまして。
UNIXのftpコマンドについて、お聞きしたいことがあります。

ftpコマンドを使用して、WinNTサーバからUNIXへデータを
getしているのですが、以下の事象が発生しています。
・対象ファイルが0バイトの時、getコマンド終了後、そのまま
    ftpのプロセスがハングアップしてしまうことがある。

シェル内で以下のように使用しています。
ftp -n <<EOF
open [IPアドレス]
user [ユーザ名] [パスワード]
binary
get [getするファイル名] [保存するファイル名]
close
quit
EOF

現象を見る限り、getコマンドまでは完了してるようです。
psコマンドにて、ftpのプロセスを検索すると、
ftp -n
が残ってしまっています。

UNIX側からタイマーなどでftpのセッションを切ることは可能
なのでしょうか?

No. 2742 # 68user 2002/06/12 (水) 21:34:08
>>2741 バクモン
それって、要は ftp か ftpd のバグですよね。
    ftp -n < input &
    pid=$!
    sleep 300
    if [ `ps -p $!` ]; then
        kill $!
    fi
的な監視をするのが普通でしょうか。

No. 2743 # バクモン 2002/06/13 (木) 10:35:47
>>2742 68user
早速のご回答、ありがとうございます。
確かにftpプロセスの監視しかないかな、と思います。
そこで、再度質問なんですが、このftpコマンドを使用している
シェルがCシェルで書かれています(すいません、先に言って
おくべきでした)。
Cシェルでは直前に実行したコマンドのプロセスIDを取得する
方法はあるのでしょうか?
($!はKシェル、Bシェルのみの文法と調べたら書いてありました)

No. 2744 # だいすけ 2002/06/13 (木) 10:59:34
echoサーバの
3: #include <stdio.h>
        4: #include <netdb.h>
        5: #include <sys/types.h>
        6: #include <sys/socket.h>
        7: #include <sys/uio.h>
        8: #include <unistd.h>
        9: #include <sys/param.h>
      10: #include <netinet/in.h>
      11: #include <arpa/inet.h>
この部分なのですが、#include <stdio.h>はわかるのですが、
他の物は参考書も見ても掲載されていません。
なんなのでしょうか?

Prev< No. 2741〜2744> Next  [最新発言に戻る] [過去ログ一覧]