Php sistemi () komutu aracılığı ile arka planda çok sayıda sistem komutları çalıştırma?

1 Cevap php

Ben bir url açarak benim sunucuda bir komut dosyası aramak istiyorum. Komut çalıştırmak için uzun zaman alır, bu yüzden açık tarayıcı tutmak ve zaman aşımları konusunda endişelenmenize gerek yoktur böylece arka planda çalıştırmak istiyorum.

Bu PHP fonksiyonu sistemi () çalışması gerekir gibi görünüyor, ama benim için çalışmıyor.

Tüm göreli yolları doğru şekilde komut doğru dizin içinde yürütmek zorundadır. İşte ben yürütmek istiyorum sistemi komut:

cd /path/to/script/directory/;php my_php_script &

Ve bu boşuna denedim en son şeydir.

system('(cd /path/to/script/directory/;php my_php_script & > /dev/null)');

Herkes bunu nasıl biliyor?

1 Cevap

Linux gibi bir Unix benzeri bir sistem üzerinde bunu yapmak çok kolaydır. Nohup sizinle başlamak gerekir komut ve aşağıdaki komutları çalışmaya devam edecektir. Script çıkmadan eğer komutlar bile çalışır veya bir kullanıcı oturum. Bu komutuna çok benzer ama okumak daha kolaydır.

system("nohup php /path/to/script/directory/my_php_script > /dev/null &");

PHP'nin çöp toplayıcı bellek sızıntı eğilimli ve basit bir script gün bir konuda bellek gigabayt kadar yiyebilirsiniz. Bu bellek serbest böylece saat veya dakika içinde cron işleri olarak bu çıkış çalıştırmak için php komut planlamak için daha iyidir.