▼スレッド
│
└◇1890:apacheをサービス登録で起動したい [naoya] 02/12 11:06
└◇1893:Re:apacheをサービス登録で起動したい [naoya] 02/13
└◇1894:Re[2]:apacheをサービス登録で起動したい [りう] 02/13
└◇1895:Re[3]:apacheをサービス登録で起動したい [naoya] 02/13
└◇1896:Re[4]:apacheをサービス登録で起動したい [naoya] 02/13
└◇1897:Re[5]:apacheをサービス登録で起動したい [naoya] 02/13
└◇1898:Re[6]:apacheをサービス登録で起動したい [naoya] 02/13
└◇1899:Re[7]:apacheをサービス登録で起動したい [discypu] 02/13
└◇1900:Re[8]:apacheをサービス登録で起動したい [naoya] 02/13 <
naoyaです。スレッド一覧
本日Apacheを1.3.29にアップデートしたのですが、
サービス起動を停止せずにアップデートしてしまったためか動かなくなってしまいました。
環境を再構築しようとあれこれし、ようやく apachectl start で起動できるようになったのですが、
サービスに登録して起動させるとエラー?が発生し、起動させることができません。
もしおわかりになられる方がおりましたら回答を宜しくお願いします。
OS:Windows XP
Cygwin:1.5.7(0.109/3/2) 2004-01-30 19:32 Cygwin
$ httpd -v
Server version: Apache/1.3.29 (Cygwin)
サービスの登録)
$ cygrunsrv -I httpd -d "CYGWIN httpd" -p /usr/sbin/httpd.exe -a -k -e "CYGWIN=ntsec nosmbntsec"
サービスの開始)
$ cygrunsrv -S httpd
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062:
そのサービスを開始できませんでした。
となります。
尚、この時 /var/log/apache にログは吐かれてませんでした。
イベントビューアのエラーログには以下が入ってました。スレッド一覧
どなたかわかりますでしょうか?
イベントの種類: エラー
イベント ソース: httpd
イベント カテゴリ: なし
イベント ID: 0
日付: 2004/02/13
時刻: 8:54:58
ユーザー: NT AUTHORITY\SYSTEM
コンピュータ: HOGEHOGE
説明:
イベント ID (0) (ソース httpd 内) に関する説明が見つかりませんでした。リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。詳細については、ヘルプとサポートを参照してください。次の情報はイベントの一部です: httpd : PID 2952 : starting service `httpd' failed: execv: 1, Operation not permitted.
apachectl で起動したため、/var/log/apache 以下にスレッド一覧
ログファイルが作成されてしまい、しかもそれらが SYSTEM 権限で
書き込めないというオチなのではないでしょうか。
/var/log/apache 以下の全てのファイル及びディレクトリの
パーミッションを確認してみて下さい(/var/run 以下にある
pid 記録ファイルもかな)。
確かにSYSTEMになっていたので、自分のアカウントに変更し、スレッド一覧
再度トライしてみましたが、やっぱりだめでした。
管理ツール内のサービスから実行すると
「エラー1067: プロセスを途中で強制終了しました。」
とメッセージボックスが表示され、
$cygrunsrv -S httpd
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062:
そのサービスを開始できませんでした。
と表示されます。
なぜだろうか?
#cygwinからクリーンインストールしないとダメか?
深みにはまったようです。スレッド一覧
sshd も同様な現象に陥ってしまいました。
余計なもんまで chown, chgrp で変更してしまったのかも。
ガックシ。(泣)
sshd は復帰しました。スレッド一覧
SYSTEM, Administratorsでないと動かないようです。
apacheの方はcygrunsrvでの登録がまずいのか、
/var/log/httpd.logファイルに
httpd: unknown option -- k
Usage: /usr/sbin/httpd [-R directory] [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T] [-F]
Options:
-R directory : specify an alternate location for shared object files
-D name : define a name for use in <IfDefine name> directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C "directive" : process directive before reading config files
-c "directive" : process directive after reading config files
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled-in modules
-L : list available configuration directives
と出力されてます。
cygrunsrv -I httpd -d "CYGWIN httpd" -p /usr/sbin/httpd.exe -a -k -e "CYGWIN=ntsec nosmbntsec"
この指定ではダメってことなのか?
ということで、スレッド一覧
cygrunsrv -I httpd -d "CYGWIN httpd" -p /usr/sbin/httpd.exe -e "CYGWIN=ntsec nosmbntsec"
としてサービス登録しました。
#「-a -k」を抜く
一応 apache が動いているようですが、
サービスの表示が開始になっていません。
/var/log/httpd.log
はブランク。
/var/log/apache/error_log
は、
[Fri Feb 13 16:49:01 2004] [notice] Apache/1.3.29 (Cygwin) configured -- resumin
g normal operations
[Fri Feb 13 16:49:01 2004] [notice] Accept mutex: pthread (Default: pthread)
[Fri Feb 13 16:50:46 2004] [notice] child pid 1036 exit signal User defined sign
al 2 (31)
こんなのが吐かれてますネ。
さて、どうしましょう??
/usr/share/doc/Cygwin/apache-1.3.29-1.READMEに、スレッド一覧
$ cygrunsrv -I httpd -d "CYGWIN httpd (apache)" -p /usr/sbin/httpd.exe -a "-F"
とか、
BEWARE: If you have installed 1.3.x-y from the cygwin net distribution
prior to version 1.3.29-y and are using the "-k" option that is passed
to cygrunsrv to leave the main parent process bound to the shell and not
to detach from the shell, the new option is now "-F". This change is due
to the fact that the "-k" switch was a cygwin specific patch and the "-F"
switch is now the "official switch" for it.
と書かれています。
ですので、cygrunsrvの引数に -a -k の代わりに -a -F を渡せばできるかもしれません。
手元の以下の環境では:
$ cygcheck -c cygwin apache
Cygwin Package Information
Package Version Status
apache 1.3.29-2 OK
cygwin 1.5.7-1 OK
cygrunsrvに次の引数を渡して、apacheのサービスでの起動に成功しています。
$ cygrunsrv -I httpd -d "Cygwin httpd" -p /usr/sbin/httpd -a -F
回答ありがとうございます。スレッド一覧
ご教授いただきました方法で無事サービスを立ち上げることができました。
ほんとにありがとうございます。
READMEを見ればよかったんですね。
お恥ずかしい限りです。