cygwinの"unknown service"エラー

奇妙な事象に遭遇した。

cygwinからlftpを実行しようとしたら"open: ftp: no such service"というメッセージが表示されて起動できない。試してみたらftp以外にもtelnetなども駄目だ。DOS窓からあげたftp.exeやWindowsXPffftpは問題なく動作しているから、あきらかにcygwinの問題だ。同じcygwinでもlxr用にあげたapacheは動作している。

いろいろ調べてみた結果、getservbynameでサービスのport番号を開けないのではないかと思われる。apacheが動作するのはhttpd.confでportを書いてあるせいだろう。cygwinの/etc/servicesは、C:\windows\system32\drivers\etc\servicesへのシンボリックリンクとなっている。そこで、

  1. /etc/hostsを秀丸で開いて改行コードの種類を変えて保存してみた
  2. いったんシンボリックリンクを削除して、ファイル実体をコピーしてみた
  • /etc/hostsを編集して、ftp関連のエントリーをファイルの先頭にコピーしてみた

等試してみたが、結果は変わらない。どうやら、cygwinのより基盤の部分で問題が生じているように思われる。他にできることとして、

  • cygwinのアップデート
  • cygwinのRe-install(全パッケージをダウンロードし直してから再導入される)

までやったが状態は変わらない。この件について、"'unknown service' cygwin"等でGoogle検索してみたが、日本語限定を外しても195件しかヒットせずかつ参考になる情報はほとんどない。Yahoo! JAPANのほうで同一条件で検索すると、件数は65件と少ないが同じ症状と思われるブログにヒットした。

この記事へのコメントを見ると同じ症状を経験している人は複数あることがわかったが、解決策は掲載されていない。

この日記を書いている11月3日13:46現在この問題はまだ解決されていない。不思議だ。→本件は解決しました。詳しくは11月5日の日記、MSNメッセンジャー7.5の診断ツールには、「気をつけろ!」を参照ください。