▼スレッド
│
└◇208:Re[2]:cronの設定について [川西] 02/21 21:07
└◇209:Re[3]:cronの設定について [中島] 02/22
└◇211:Re[4]:cronの設定について [な] 02/22
└◇212:Re[5]:cronの設定について [川西] 02/23
始めまして、「cygwinのcronを使う方法」を探しているうちに、こちらのページにたどりつきました。スレッド一覧
cron自体はWindows 2000のサービスとしてちゃんと動いているのを確認したのですが、やはりcrontabで設定した時間に下記のようなエラーが発生して、スケジュールした実行ファイルが動きません。
イベント ID (0) (ソース /usr/sbin/cron 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。次の情報はイベントの一部です: /usr/sbin/cron : Win32 Process Id = 0x750 : Cygwin Process Id = 0x750 : (CRON) error (can't switch user context).
web上のいろんなサイトをしらべると、faqであるのは間違いなさそうですが、解決策は一切みつかりませんでした。
スレッド一覧
以前、cygrunsrv.exe で、/usr/local/sbin/mhttpd.exe を起動しようとして
うまくいきませんでした。
/usr/local/sbinに cygwin1.dll をコピーするか、樋口様の、svsldr.exe を
使用したらうまくいきました。
どうも cygrunsrv.exe の、システムの環境変数 PATH の認識が変で、
cygwin1.dll を見つけられずに起動に失敗していたような気がします。
いまなら、cygrunsrv.exe に、直接、環境変数 PATH を指定できるみたい
なので、そうしたらうまくいくかもしれません。
以前に、1.1.8 -> 1.3.5 へ上げたときに、システムパスのドライブレターをスレッド一覧
大文字に変えないと('c:\cygwin\bin;...' -> 'C:\cygwin\bin;...') inetd が
起動しないことがありました。
Caster氏、Kaduo A氏 中嶋氏 な氏 皆様ありがとうございました。スレッド一覧
昨日いろいろいじっていたら、スケジュールしたアプリが起動しました。
1)システム環境変数「CYGWIN」を設定した、値は「ntsec」
2)crontabで指定した実行ファイルを「BAT」ファイルではなく、シェルスクリプト(#!/bin/sh)に書き直した。
3)そのシェルスクリプトのファイルを、/usr/local/binに移動した。
4)mkpassd -ld > /etc/group ってやってみた。
NT/2000サーバー上で何かしらのアプリを定期的に自動実行させたいう要望は多いはずですが、Windowsのアプリをcygwinのcronで実行させるには、注意することが多いようです。
お騒がせしてもうしわけありませんでした。