パスワードを忘れた? アカウント作成
2118903 journal
日記

beroの日記: Windowsでコンソールアプリをコンソールウィンドウを開かずに実行する 4

日記 by bero

nginx for Windows でPHPを動かす
あたりを参考にWindows上のテスト環境をApache+モジュールからnginx+fastcgiにしようとしたが、コンソールウィンドウが残ってウザイ。

nginxは一瞬コンソールウィンドウを開いた後自前で閉じるのだが、php-cgiをfastcgiモードで実行すると常駐してコンソールウィンドウが開いたままになる。

batのstart命令の引数でできないかと思ったが見当たらない
WSHだとRunメソッドの第2引数で制御できる

batをWSHで書き直した例

start.js

WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run('nginx.exe',0);
WshShell.Run('c:/opt/php/php-cgi.exe -b 127.0.0.1:9000',0);

stop.js

WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run('nginx -s stop',0);
WshShell.Run('taskkill /f /IM php-cgi.exe',0);

WSHはJSまたはVBで書けるが、JSなのは単に好みの問題。まあラッパが書ければC+Win32APIでもC#でも何でもいいけどWSHが手軽。
なおphp-cgi.exeはphp.iniにミスがあったりすると本来はコンソールにエラーを吐くが、非表示だと見えないので、普通に起動して動作確認してから。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲはアレゲを呼ぶ -- ある傍観者

読み込み中...