
以下の手順でFTP転送を中断した場合に、直ぐに転送が中断が中断されなくて(セッションがクローズされない)困っています。直ぐに中断できる方法を知っている方、教えてください。
[1]8台のクライアントから同時にFTP転送を要求する。
[2]8台分の転送中に4台でFTPクライアントをSIGKILLで強制終了させる。
[3][2]の直後に4台のFTPクライアントから[1]とは別のデータ転送を要求する。
このときに、2台分のFTPクライアントでNotConnectedとなってしまいます。理由は、SIGKILLでFTPセッションをクローズしようとしたが、クローズしきれずに、8本のセッション+4本のセッションを同時接続しようとして、FTPライセンス数オーバー(8+4>10)により、接続できないようです。
また、調査の結果、SIGKILL時に別クライアントの転送処理が実行されている場合、その転送が完了するまで、SIGKILLをサーバー側で検知してくれません。別クライアントの転送処理が全く実行されていない場合は、SIGKILL直後にサーバー側で即座に転送中断&セッションクローズをしてくれます。
データ転送の有無に因らず、FPTクライアントの転送中断を即座に確実に実行する方法がありましたら教えてください。
とにかくやりたいことは、「8本転送中に、4本を直ぐ止めて、直ぐに別の4本のデータを転送したい」です。
<環境>
FTPサーバー(WindowsPC×1台):WindowsXPのIISのFTP
*IISのFTPサーバーは最大10本の同時接続が可能。
FTPクライアント(LINUXPC×8台):LINUXのFTPクライアント
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
直接の回答ではないのですが、なぜSIGTERMでなくてSIGKILLなのでしょうか?
通常のプロセスはSIGTERMを受けると終了のための処理を行ってから終了します。(ちゃんとSIGTERMをハンドリングしていれば、ですが)
しかし、SIGKILLでは強制的にOSがプロセスを停止してしまい、適切な終了処理が行われません。一般的には、プロセスを中断させるときにはまずSIGTERMやSIGINTで試し、それでもプロセスが停止しないときにSIGKILLを使うべきです。
もしFTPクライアントがSIGTERMを受け取るとセッションの中断をサーバに伝えるような仕様になっているのなら、SIGKILLでなくSIGTERMに変えると、うまくいくかもしれません。(FTPの内部プロトコルについて詳しくないので、この辺は想像の域に過ぎませんが)
この回答への補足
なぜ、SIGKILLなのかは既に担当された方が不在で、その経緯を把握しきれていません。SIGINTではすぐに止まってくれないので、SIGKILLにしたぐらいのことしか分かっていません。
以下のとおり7種類のシグナルによりFTPクライアントを停止させた時の、クライアント側、サーバー側双方の動作を確認して見ました。
SIGKILL、SIGTERM、SIGUSR1、SIGUSR2の4種類は即クライアント、サーバー共に停止できた。ただし、裏で別のデータ転送が走っていると、サーバー側の転送中断が直ぐに実行されない。
このように、どうやったら、クライアント、サーバー双方を即座に停止できるのかまだ分かっていません。
(凡例)
[1-N]FTP中断シグナルの種類
[2-N]中断時のクライアント動作
[3-N]中断時のサーバー動作
*N=1~7の整数値(シグナルを7種類試した)
(実験結果)
[1-1]SIGKILL
[2-1]即座に転送データの受信を中断する。プロセスリストからFTPクライアントが即消える。
[3-1]クライアントのSIGKILLと同時に即座に426で転送中断完了する。
[1-2]SIGINT
[2-2]即座に転送データの受信を中断する。ただし、FTPクライアントは転送完了後も残り続ける。15分後(900秒後)にタイムアウトによりFTPクライアントが消える。[3-2]ABORTを受信して、ABORT処理を完了させる。ただし、ABORT完了までの時間=転送完了までの時間のため、転送完了を待って、ABORT完了としているものと思われる?タイムアウトによりセッションのクローズが完了する。
[1-3]SIGTERM
[2-3]即座に転送データの受信を中断する。プロセスリストからFTPクライアントが即消える。
[3-3]クライアントのSIGTERMと同時に即座に426で転送中断完了する。
[1-4]SIGUSR1
[2-4]即座に転送データの受信を中断する。プロセスリストからFTPクライアントが即消える。
[3-4]クライアントのSIGTERMと同時に即座に426で転送中断完了する。
[1-5]SIGUSR2
[2-5]即座に転送データの受信を中断する。プロセスリストからFTPクライアントが即消える。
[3-5]クライアントのSIGTERMと同時に即座に426で転送中断完了する。
[1-6]SIGSTOP
[2-6]即座に転送データの受信を中断するが、プロセスリストからFTPクライアントが消えない。
[3-6]転送しない。USER,PASS以降のログが出力されない。
[1-7]SIGTSTP
[2-7]即座に転送データの受信を中断するが、プロセスリストからFTPクライアントが消えない。
[3-7]転送しない。USER,PASS以降のログが出力されない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
裁判所から届く「訴状」は転送...
-
PDFファイルをFFFTPでアップロ...
-
転送と回送の違い
-
ホームページビルダーのファイ...
-
HD TuneのBurst Rateとは何を意...
-
ファイルをコピーしてる時にス...
-
ホームページビルダー・ファイ...
-
PcAnywhereのファイル転送でExc...
-
画像の転送禁止ついて
-
「スマホカメラ転送」は、何?
-
Beckyで手を加えずに転送の送信...
-
クラウドサービスの転送容量
-
98からXPへの移行にあたって ...
-
AccessからExcelのシートを削除
-
アンドロイドスマホに4GB以上の...
-
ルーターを流れるデータ量を計...
-
messengerに投稿したwordファイ...
-
ギガファイル便って女の人のエ...
-
ファイルを「読み取り専用」に...
-
WordでURLをクリックしてそのペ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
裁判所から届く「訴状」は転送...
-
クラウドサービスの転送容量
-
録音アプリのPCM録音で4時間録...
-
サーバーに転送したファイルが0...
-
Beckyで手を加えずに転送の送信...
-
Music Center for PCの楽曲をiT...
-
アンドロイドスマホに4GB以上の...
-
転送と回送の違い
-
USB2.0用の延長ケーブルを、USB...
-
FTP(Filezilla)で「上書きしま...
-
ファイルをコピーしてる時にス...
-
FTP転送エラーについて
-
外付けHDDの80GBのデータを内蔵...
-
ホームページビルダーで転送が...
-
FFFTPを使っているのですが画像...
-
TCP環境下でのファイル破損は起...
-
AccessからExcelのシートを削除
-
messengerに投稿したwordファイ...
-
2連装のHDDケースの書き込み速度
-
音楽編集ソフト STEP(SuperTag...
おすすめ情報