▼スレッド
│
└◇88:Re:cronの設定について [Kaduo_A] 02/09 00:51
├◇208:Re[2]:cronの設定について [川西] 02/21
│└◇209:Re[3]:cronの設定について [中島] 02/22
│ └◇211:Re[4]:cronの設定について [な] 02/22
│ └◇212:Re[5]:cronの設定について [川西] 02/23
└◇237:Re[2]:cronの設定について [中島] 02/28
はじめまして。私もはまってしまいました。スレッド一覧
> cygrunsrv -I cron -p /usr/sbin/cron -a -D としてサービスに組み込んで、
> 一度Windowsのサービスの項目にcronと書かれているのを確認して、
> cygrunsrv -S cron としてサービスで動かしてから、crontab -eして設定ファイルを
> 書きましたが
たぶん同じ状態だと思われます。なお、daily.sh単体での動作は確認済みです。
お知恵を貸してください。
crontabの設定
0 * * * * /home/Administrator/analog/logs/daily.sh
イベントビューアのログ
イベントの種類: 情報
イベント ソース: /usr/sbin/cron
イベント カテゴリ: なし
イベント ID: 0
日付: 2001/12/10
時刻: 4:00:00
ユーザー: N/A
コンピュータ: ####
説明:
イベント ID (0) (ソース /usr/sbin/cron 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。次の情報はイベントの一部です: /usr/sbin/cron : Win32 Process Id = 0x4D0 : Cygwin Process Id = 0x4D0 : (CRON) error (can't switch user context).
イベントの種類: 情報
イベント ソース: /usr/sbin/cron
イベント カテゴリ: なし
イベント ID: 0
日付: 2001/12/10
時刻: 4:00:00
ユーザー: N/A
コンピュータ: ####
説明:
イベント ID (0) (ソース /usr/sbin/cron 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。次の情報はイベントの一部です: /usr/sbin/cron : Win32 Process Id = 0x4D0 : Cygwin Process Id = 0x4D0 : (Administrator) CMD (/home/Administrator/analog/logs/daily.sh).
始めまして、「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で実行させるには、注意することが多いようです。
お騒がせしてもうしわけありませんでした。
私も確認のため、cygrunsrv で cron を立ち上げてみましたが最初はまりました。スレッド一覧
NTFS で、/home が各ユーザしか読み取りできずスクリプトを実行できずに落ちたり、
Everyone を読み取りのみにしていたのでログを書けずに落ちたりしました。
解決方法は、cron はサービスで動いているのだから、cron が読み書きする
ファイルは、当然、システムが読み書きできる権限が必要です。
なので、念のため、すべてのファイルにシステムにフルコントロールを追加しました。
> > cygrunsrv -I cron -p /usr/sbin/cron -a -D としてサービスに組み込んで、
> > 一度Windowsのサービスの項目にcronと書かれているのを確認して、
> > cygrunsrv -S cron としてサービスで動かしてから、crontab -eして設定ファイルを
> > 書きましたが
>
> たぶん同じ状態だと思われます。なお、daily.sh単体での動作は確認済みです。
> お知恵を貸してください。
>
> crontabの設定
>
> 0 * * * * /home/Administrator/analog/logs/daily.sh
>