人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

環境はWIN2Kです。
やりたい事は、
http://www.stackasterisk.jp/tech/php/php02_02.jsp
に記載してある、
<?
system("/bin/sh /home/your/sleep.sh > /dev/null &");
echo "OK.";
?>
として、バックグラウンドでsleep.shを走らせたいと思っています。

いろいろ検索してみて> dev/null &を> NUL
としてみたのですが旨くいきません。
WIN環境でリダイレクトを実現する為に、参考となるページなどありませんでしょうか?

●質問者: NAO8
●カテゴリ:インターネット ウェブ制作
✍キーワード:/bin/sh echo HOME sh WIN
○ 状態 :終了
└ 回答数 : 3/4件

▽最新の回答へ

1 ● b-wind
●35ポイント

Windows ではそもそも /bin/sh は存在しないと思うですがどうでしょうか?

実行させる為には、Cygwin 等の環境が必要だと思います。

http://www.sixnine.net/cygwin/index.html

◎質問者からの返答

申し訳ないです。実際は、system("/bin/sh /home/your/sleep.sh > /dev/null &");

じゃないんです。 例としてなんですが、sleep.exeとかしとくべきでしたね

Cygwinを使えば/dev/null &が使えるってことになりますか


2 ● b-wind
●25ポイント

まず、Windows の cmd.exe でも リダイレクトの構文は使えます。

また、/dev/null に相当するのは NUL ですから、

system("cmd.exe /c test.exe > NUL");

の実行は問題ありません。

ただ、& によるバックグラウンド実行は出来ませんので、start.exe 等を使用することになります。

http://www.atmarkit.co.jp/fwin2k/operation/command002/command6.h...


3 ● Mook
●20ポイント

やり方はまったく変わりますが、単にバックグランドで処理をしたいということでしたら、次のやり方でも出来ます。


C:\Caller.vbs

CreateObject( "WScript.Shell").Run "ping -n 10 localhost",,False

を用意します(Windows では標準で Sleep がないため Ping で代用しました)。

ここで

<?php
 system('CScript //nologo C:\Caller.vbs');
 echo "OK.\n";
?>

を実行してみます。

これが実際に数秒かかる処理であることは、False True に変えることで変化します。

これは UNIX の例だと、 & を付けるか付けないかに相当します。

WSH Runメソッド


今回バックグランドで実行することが目的だと解釈しましたので、リダイレクトには言及しませんでしたが、的外れでしたらすみませんでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ