環境は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環境でリダイレクトを実現する為に、参考となるページなどありませんでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/12/01 23:37:13
  • 終了:2006/12/02 13:47:01

回答(4件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/12/02 00:19:49

ポイント35pt

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

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

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

id:NAO8

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

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

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

2006/12/02 00:31:06
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402006/12/02 00:42:56

ポイント25pt

まず、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...

id:Mook No.3

Mook回答回数1313ベストアンサー獲得回数3922006/12/02 01:46:11

ポイント20pt

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


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メソッド


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

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 Mook 1313 1218 392 2006-12-02 02:19:37
  • id:Mook
    2度目の回答は、1度目の回答とまったく同一です。
    失礼しました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません