문제

I need to run a command in PHP like this:

exec('dosomething > saveit.txt');

Except I don't want PHP to wait for it to be complete. I also don't want to throw away the output, and I don't want to use nohup because I'm using that for something else in the same directory.

I also tried pclose(popen('dosomething > saveit.txt','r')); and that didn't work, it still waited.

도움이 되었습니까?

해결책

Add an ampersand to the end of the command, so:

exec('dosomething > saveit.txt &');

다른 팁

in the documentation of exec() there is an interesting comment that says:

Took quite some time to figure out the line I am going to post next. If you want to execute a command in the background without having the script waiting for the result, you can do the following:

 <?php
  passthru("/usr/bin/php /path/to/script.php ".$argv_parameter." >> /path/to/log_file.log 2>&1  &");
 ?>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top