Página Inicial > Outros, PHP > Executando comandos sem travar a aplicação

Executando comandos sem travar a aplicação

Boas pessoal.

Existem algumas maneiras de se executar comandos em shell ou prompt (se la como chama-se isso hoje no Windows). Tudo depende do que você precisa fazer com o comando chamado. A forma mais usada de se executar um comando é usando a função system() ou ainda a função exec().

Muitas vezes não precisamos saber o retorno da aplicação, só precisamos chama-la. No Windows é possível instancia um COM Object do shell e executar o comando, não sei se o mesmo trava a aplicação, porem no Linux, ao executar um comando com o exec() ou system() a aplicação trava até que a aplicação chamada se fecha.

Isso ocorre por que a saida da aplicação será data ao método de retorno da função. Para que isso não ocorra, é preciso mudar a saída do resultado. Algo assim:

system("./script >> /dev/null &");
 

Assim, mudamos a saida para o lixo, e então podemos inicia-lo em background.

Espero que esta simples dica ajude o pessoal, pois sofre um "cadinho" pra descobri-la.

Valeu!

Categories: Outros, PHP Tags: , ,
  1. Nenhum comentário ainda.
  1. Nenhum trackback ainda.