8

exec()を使用して、LinuxまたはWindowsのいずれかのコマンドを実行します。

コマンド、Linux、Windowsをどのように実行し、待たずに出力をログに記録しますか?

私はLinuxについて、出力を待たないことを知っています。command* > /dev/null 2>/dev/null &

Linuxの出力をログに記録するには: command* > /path/to/log.txt 2>/path/to/error.txt

1つのコマンドでログを記録してバックグラウンドに設定するにはどうすればよいですか?ウィンドウもどのように見えますか?

4

1 に答える 1

20

Linuxでは、次のことができます。

exec('command* > /dev/null 2>/dev/null &');

Windowsでは、次のことができます。

pclose(popen('start /B cmd /C "command* >NUL 2>NUL"', 'r'));

どちらの例も出力とエラーを無効にします。これらは/dev/null(linux)またはNUL(windows)に移動します。つまり、「どこにも」保存されません。

これらをシステム上の有効なパスに置き換えることができます。

Linuxでは、&最後にaを付けるとバックグラウンドになります。Windowsでは、これはより複雑でありstart、プロセスを呼び出しcmd、ストリームのリダイレクトを許可する必要があります。

于 2012-06-28T18:32:20.327 に答える