web-dev-qa-db-ja.com

Cygwinでinetdデーモンを実行する方法は?

Cygwinを実行しているマシンでinetdデーモンを動作させたい。 Centos 4でこれを行う方法は知っていますが、Cygwinでは機能しないようです。

私が試したコマンドは次のとおりです。

cygrunsrv -I xinetd -d "Cygwin Xinetd" -p /usr/sbin/xinetd -e CYGWIN=ntsec
cygrunsrv -S xinetd
/etc/rc.d/init.d/xinetd start

Linuxでは、次のようにします。

/sbin/service xinetd restart

構成ファイルを編集した後:

/etc/xinetd.d/<myAppHere>

Cygwinでこのファイルを作成しましたが、サービスの開始方法がわからないようです。


[si-xp-pro-sp3 ~] /etc/rc.d/init.d/xinetd start
/etc/rc.d/init.d/xinetd: line 22: /etc/init.d/functions: No such file or directory
Starting xinetd: /etc/rc.d/init.d/xinetd: line 59: daemon: command not found

[si-xp-pro-sp3 ~] /usr/sbin/xinetd start
Usage: xinetd [-d] [-f config_file] [-filelog filename] [-syslog facility] [-reuse]
[-limit proc_limit] [-pidfile filename] [-logprocs limit] [-shutdownprocs limit]
[-cc interval]
1
WilliamKF

cygrunsrvはほと​​んどの魔法を実行しますが、Windowsファイルシステムのアクセス許可を開く必要があります。

これは単にls-lを実行するだけではありません

これは、CMD.EXEを介して行うか、Explorer.EXEGUIを介して行う必要があります。

特に、次のディレクトリ(フォルダ)をシステムのフルコントロール用に開く必要があります。

C:\CYGWIN
C:\CYGWIN\VAR
C:\CYGWIN\VAR\LOG

これらのそれぞれでファイルプロパティを選択し、[セキュリティ]タブを探します。

[セキュリティ]タブがない場合は、「単純なファイル共有」があります。 [ツール]-> [フォルダオプション]-> [表示]でオフにしてから、最後のチェックボックスまでスクロールします。[]単純なファイル共有を使用する(推奨)

チェックされていないことを確認してください。そうすると、各フォルダの[セキュリティ]タブも表示されるはずです。

SYSTEMがグループ名またはユーザー名の下にリストされていることを確認してください。そうでない場合は追加してください。次に、SYSTEMが強調表示されているときに、フルコントロール許可がチェックされていることを確認します。

Sshdでのこの問題の説明については、このリンクを参照してください http://www.noah.org/ssh/cygwin-sshd.html

1
lcbrevard

ランニング /usr/bin/xinetd-config xinetdを設定すると、次の2つのエラーが解決されます。

/etc/rc.d/init.d/xinetd:22行目:/etc/init.d/functions:そのようなファイルやディレクトリはありません

Xinetdの開始:/etc/rc.d/init.d/xinetd:59行目:デーモン:コマンドが見つかりません

3
Aaron

/etc/rc.d/init.d/xinetdは存在しますか?どんなメッセージが届きますか?

単にxinetdまたは/ usr/sbin/xinetdを実行してみましたか?

単に、引数として「開始」を使用することを意味するものではありません。 xinetdのマニュアルページを確認してください。

基本的に、/ etc /init.dと/ usr/sbinの使用法について混乱しています。 init.dフォルダーには、サーバープロセスを自動的に開始するために使用されるシェルスクリプトが含まれていますが、手動で使用することもできます。 sbinには、アプリケーションのバイナリが含まれています。 init.dのスクリプトはすべて、startやstopなどの引数を取りますが、sbinバイナリが取る引数を知りたい場合は、manページを読む必要があります。

Simpy run xinetdと言ったとき、私は次のシェルコマンドを入力するつもりでした。

xinetd

それがうまくいかない場合は、試してみてください

/usr/sbin/xinetd

コマンドラインに偽の引数を入力すると、xinetdは混乱し、起動しようとさえしません。

1
Michael Dillon

方法は次のとおりです。

xinetd-config
cygrunsrv -I xinetd -p /usr/sbin/xinetd -d 'CYGWIN xinetd' -a '-stayalive -pidfile /var/run/xinetd.pid'
cygrunsrv -S xinetd
0
hawkeye