[PHP-users 19628]Re: systemについて

mori takamo @ free.japandesign.ne.jp
2003年 12月 31日 (水) 22:55:36 JST


もり です。

表題: [PHP-users 19619] Re: systemについて
日付: Mon, 29 Dec 2003 09:31:37 +0900
ID:  <8EC3CDA31EEE42shogo @ studiofly.net>
Shogo <shogo @ studiofly.net> さんの記された上記メールに関してです。

> 実行権がないならあげてください。

私には、回答なさった方が書いている事が今一つわからなかったのです。
スクリプトに実行権がなければあげて下さいと書かれたのかな、それともphp
コマンドに実行権がなければあげて下さいと書かれたのかな。

もし、スクリプトに実行権を設定するという話なら見当違いな気もするし。
(インタプリタ行[先頭行に書く #! /path/to/command]の書かれていないテキ
ストは実行権を与えてもシェルとして実行される事はあってもphpとして実行
される事などないと思います。またphpコマンドを使い起動する場合には実行
権は不要です。)

もし、phpコマンドが使えるようになっているならコマンド検索パスの確認か
もしくはコマンドを絶対パスで指定すれば良いし、コマンド版のphpが用意
されてなければコマンド版のPHPを導入する必要があるだろうし。プロバイダ
の用意しているコマンドなら利用者が実行権を付与する事などできないだろう
し。

何が書きたかったのだろう。


> 書き込み権限がないなら適当なディレクトリに適当なファイル作って書込権限付
> けてそこにリダイレクトすればいいかと。

なんとなく見当違いな方向に見えます。(リダイレクトの目的はバックグラウ
ンドで実行する為じゃないのかな。この場合、出力をnullデバイスに捨てる事
は悪い考えではない様に見えました。)


> # まぁ、サンプルのスクリプトみたいにSTDOUTに何も出力しないなら
> # リダイレクトなんて無用だと思うんですがね。
>
> # 蛇足。マニュアルかなんかを読んで盲目的に ... > /dev/null &としてるだけ
> # の様な気がするのは僕だけでしょうか。もし違ったらごめんなさい。

マニュアルを見てないのは回答者じゃないかな。

マニュアルの記述を見ると、

> http://search.net-newbie.com/php/function.system.html
> 注意:  この関数を使用してプログラム実行を開始し、バックグラウンドで
> 実行したままにしたい場合には、プログラムの出力をファイルまたは他の
> 出 力ストリームにリダイレクトする必要があることにも注意して下さい。
> さもないと、PHPはそのプログラムの実行が終了するまでハングします。 

と書かれています。実行部分を見るとバックグラウンドで実行しようとして
いた(最後に"&"がついていた)様に見えたので、マニュアルの記述も合わせて
見ればリダイレクトが目的ではなくバックグラウンドで問題なく動かす事を
目的としたリダイレクトに見えました。(私は質問者じゃないので真実は不明
だけど。)


どうなんでしょうね。


PHP-users メーリングリストの案内