cygrunsrv


DESC UNIX デーモンプログラムを NT/2000/XP 上のサービスとして動作させるための サービススタータプログラム


サービス制御.コマンドラインMode


システムレジストリへの サービスのインストールや削除をします インストール済みのサービスの 起動と停止もできる


サービスの実行.デーモン化


Windows のサービス制御マネージャから呼び出される 特殊なエントリポイントからのみ実行されます ( 実装すべき関数があるということ ) コマンドラインから cygrunsrv をこのモードで動作させることは出来ません 「デーモン化」モードでは cygrunsrv は(「コマンドライン」モードで指定されたフラグに従って)環境を設定します cygrunsrv はターゲットとなるサービスが cygwin1.dll を簡単に見つけ出すことが出来るように 「/bin」を PATH の先頭に追加します (必要であれば)cygrunsrv は 標準出力、標準入力、標準エラー出力をログファイルや NT/W2K イベントログにリダイレクトします(イベントログへのアクセスはまだ実装されていません cygrunsrv はターゲットとなるデーモンを起動します


いろいろやってみた


// -p で実行する Service( Pro ) を指定 // -a "foobar" で Service にわたす Arg を指定 cygrunsrv -I foo -p /usr/bin/bash -a "foo.sh" // Service が起動したときの ENV を指定する cygrunsrv -I foo -p /usr/bin/bar -e HOME=/e/services -e TMP=/var/tmp ;; sshd.exe を Service として登録する cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a "-D" -e "CYGWIN=ntsec"



ひさびさにはいってみた


;; cygwin にある ssh client を使う ssh localhost xxx@localhost's password xxx // netstat -n とすると sshd, ssh がつながっているのがわかります TCP 127.0.0.1:2263 127.0.0.1:23 ESTABLISHED



Command.一覧


http://www.sixnine.net/cygwin/translation/software/cygrunsrv.html(cygrunsrv) POINT "サービス" を見ながら確認するとわかりやすいです
// 大文字, 小文字あります // install する cygrunsrv --install cron --path /usr/sbin/cron --args -D -e "PATH=/work/shellscript" // "cron" という service 名で /usr/sbin/cron.exe を登録 cygrunsrv -I cron -u xxx -w "xxx" --path /usr/sbin/cron --args -D -e "PATH=$PATH" cygrunsrv -R cron cygrunsrv -I cron -p /usr/sbin/cron --args -D -e "PATH=$PATH;d:/cygwin/bin" cygrunsrv -I cron -p /usr/sbin/cron --args -D -e "PATH=$PATH" cygrunsrv -I cron -p /usr/sbin/cron --args -D cygrunsrv -I sshd -p /usr/sbin/sshd --args -D -e "PATH=$PATH" * Warning: User mode mounts detected. This will likely cause the service to fail to start. You must have system mode mounts * in order to run services. Re-run setup and choose 'All Users' * or consult the FAQ for more information. // Service を開始する cygrunsrv --start cron cygrunsrv -S cron // Service をとめる cygrunsrv --stop cron cygrunsrv -E cron // 動作しているかチェック cygrunsrv --query cron cygrunsrv -Q cron // Uninstall する ( Service 一覧から消えます ) // ( Service 名の指定は -I xxx の名前で ) cygrunsrv --remove cron cygrunsrv -R cron // Help をみる cygrunsrv -h // ユーザ「xxx」アカウントとして動作するサービス sshd をインストールする cygrunsrv -I "xxx sshd" -p /usr/sbin/sshd -a '-D' -u xxx -w privy23



Option


http://www.amy.hi-ho.ne.jp/tachibana/cygwin/cron.html /// 指定した.PATH.をとおすには -e PATH=$PATH:/work/shellscript /// log を見るには /// Optional output file used for stdout redirection. Default is /var/log/<svc_name>.log. // stdout へ出力を見るには