Запуск на выполнение нескольких команд в фоне

Ярослав

Новичок
Приветствую!

Как запустить в фоне через system()?
PHP:
system("touch /tmp/.lockfile && php -r \"sleep(3);echo '1';\" > /tmp/.phpstdout && rm /tmp/.lockfile &");
Ждет 3 секунды... , а когда запускаю из баша - работает
PHP:
touch /tmp/.lockfile && php -r "sleep(3);echo '1';" > /tmp/.phpstdout && rm /tmp/.lockfile &
Если упростить:
PHP:
system("php -r \"sleep(3);echo '1';\" > /tmp/.phpstdout &");
то работает как надо, в фоне.

Можно сделать отдельный исполняемый файл, все это прописать, но хотелось бы сделать одной командой. Как правильно это решить?
 

WMix

герр M:)ller
Партнер клуба
ну либо баш либо пхп как-то мешать - "не умею" чтоли...
Код:
touch /tmp/.lockfile && sleep 3 && echo 1  > /tmp/.phpstdout && rm /tmp/.lockfile
PHP:
touch('/tmp/.lockfile'); 
sleep(3);
file_put_contents('/tmp/.phpstdou', '1');
unlink('/tmp/.lockfile');
Как правильно это решить?
сделать отдельный исполняемый файл,
 
Последнее редактирование:

Breeze

goshogun
Команда форума
Партнер клуба
если уж на то пошло, то вместо >/tmp/.phpstdout лучше юзать 2>&1 >/tmp/.phpstdout
 
  • Like
Реакции: WMix
Сверху