Выполнение внешних скриптов.

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Аватара пользователя
diselop
Сообщения: 240
Зарегистрирован: 2013.01.29, 14:56

Выполнение внешних скриптов.

Сообщение diselop »

есть команды типа

Код: Выделить всё

popen();shell_exec
и т.д.
Дело в том что они полностью блокируют сайт во время выполнения.(выполняются в воркере через герман).
Даже банальный sleep полностью рубит сайт пока не выполнится.
Может возможно как решить это?
mikola
Сообщения: 22
Зарегистрирован: 2015.01.09, 14:00

Re: Выполнение внешних скриптов.

Сообщение mikola »

Если вам не нужен вывод комманды, то ее можно запустит в фоновом режиме (нужно добавит & после комманды)

shell_exec("./myscript.sh &");

http://www.opennet.ru/docs/RUS/linux_base/node26.html
Аватара пользователя
diselop
Сообщения: 240
Зарегистрирован: 2013.01.29, 14:56

Re: Выполнение внешних скриптов.

Сообщение diselop »

mikola писал(а):Если вам не нужен вывод комманды, то ее можно запустит в фоновом режиме (нужно добавит & после комманды)

shell_exec("./myscript.sh &");

http://www.opennet.ru/docs/RUS/linux_base/node26.html
Да спасибо с popen() прокатило!
но shell_exec("./myscript.sh &"); так же вешает все.
mikola
Сообщения: 22
Зарегистрирован: 2015.01.09, 14:00

Re: Выполнение внешних скриптов.

Сообщение mikola »

Вот такой вариант я проверил, стопудово работает

index.php

Код: Выделить всё

<?php

shell_exec("./myscript.sh > /dev/null &"); 
myscript.sh

Код: Выделить всё

#!/bin/bash

echo "1" >> ./tmp.txt
sleep 5s
echo "2" >> ./tmp.txt
Ответить