ページ更新: 2004-09-17 (金) (6053日前)
注意点(特にサービスとして動作させるとき)がCygwin付属の /usr/share/doc/Cygwin/inetutils-1.3.2.README に書かれているので見ておくこと。 目次 [編集]設定手順 #[編集]設定ファイルの生成 #/usr/bin/iu-config を実行すると、/etc/inetd.confなどが作成される。 $ /usr/bin/iu-config iu-configはpostinstall(インストール後の設定スクリプト)と同一。 $ diff /etc/postinstall/iu-config.sh.done /usr/bin/iu-config ; echo $? 0[編集] サービスとしてインストール #$ /usr/sbin/inetd --install-as-service[編集] 起動、起動確認 #Cygwinのcygrunsrvコマンドで $ cygrunsrv -S inetd ★起動 $ cygrunsrv -Q inetd ★確認 Service inetd exists Type : Own Process Current State : Running Controls Accepted : Accept Stop $ cygrunsrv -E inetd ★終了 $ cygrunsrv -Q inetd ★確認 Service inetd exists Type : Own Process Current State : Stopped Controls Accepted : あるいはWindowsのnetコマンドで $ net start inetd ★起動 CYGWIN inetd サービスを開始します. CYGWIN inetd サービスは正常に開始されました。 $ net stop inetd ★終了 CYGWIN inetd サービスを停止中です. CYGWIN inetd サービスは正常に停止されました。[編集] トラブルシューティング #[編集]サービス起動時にエラー「DLLが見つかりません」が発生 #inetdを起動しようとすると、次のエラーダイアログが表示されることがある。 これは、Windowsのシステム環境変数PATH(以下、PATHと略す)にcygwin1.dllのディレクトリを指定していないとき、 あるいはPATHにcygwin1.dllのディレクトリを追加した後一度もWindowsを再起動していないときに発生する。 解決するには: PATHにcygwin1.dllのディレクトリを追加していないなら、追加する。 例えば、Cygwinを c:\cygwin にインストールした場合、PATHにディレクトリ c:\cygwin\bin を追加する。 PATHにcygwin1.dllのディレクトリを追加した後一度もWindowsを再起動していない場合、Windowsを再起動する。 PATHへの追加、Windowsの再起動とも行っているなら、PATHの追加内容が正しいかどうか確認し、間違っていたら修正して、Windowsを再起動すること。 [編集]inetdの動作確認 #デバッグモード は /usr/sbin/inetd -d 。 /etc/inetd.confを読み込んだ結果を表示する。終了は ctrl-c。 $ /usr/sbin/inetd -d ADD : echo proto=tcp, wait=0, user=root builtin=4080d0 server=internal registered internal on 4 : (略) someone wants echo accept, ctrl 3 + Closing from 14 316 reaped, status 0 別のプロンプトで $ telnet localhost echo ★echoサービスに繋いで見る Trying 127.0.0.1... Connected to hostname.example.jp Escape character is '^]'. sample sample ★ちゃんとエコーされる ★ctrl-]を入力してtelnetのプロンプトを出す telnet> quit ★telnetを終了 Connection closed.[編集] ファイル #手元のパッケージのバージョン。 $ cygcheck -c inetutils Cygwin Package Information Package Version Status inetutils 1.3.2-25 OK 必ずしも以下のようになるとは限らない。 要するに確かめることは次の2点。
/etc/services #/etc/servicesはWindowsの該当ファイルへのシンボリックリンクで、ownerがusernameユーザーだが、otherの読み込みが許可されている。 $ ls -al /etc/services lrwxrwxrwx 1 username なし 160 Jul 7 2003 /etc/services -> C:\WINDOWS\system32\drivers\etc\services $ ls -al "C:\WINDOWS\system32\drivers\etc\services" -rw-r--r-- 1 username なし 7361 Jul 7 2003 C:\WINDOWS\system32\drivers\etc\services $ ls -al /etc/protocols lrwxrwxrwx 1 username Users 160 Jul 1 2003 /etc/protocols -> C:\WINDOWS\system32\drivers\etc\protocol[編集] /etc/protocols #/etc/protocolsはWindowsの該当ファイルへのシンボリックリンクで、SYSTEMグループに対して読み書き実行が許可されている。(読み込み権限だけでいいと思うが、まあいいや) $ ls -al "C:\WINDOWS\system32\drivers\etc\protocol" -rwxrwx---+ 1 Administ Administ 799 Aug 28 2001 C:\WINDOWS\system32\drivers\etc\protocol* $ getfacl -a "C:\WINDOWS\system32\drivers\etc\protocol" # file: C:\WINDOWS\system32\drivers\etc\protocol # owner: Administrators # group: Administrators user::rwx group::rwx group:SYSTEM:rwx group:Users:r-x group:Power Users:r-x mask:rwx other:--- |