Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Melaksanakan Perintah Shell secara Asynchronously dalam PHP Tanpa Menyekat?

Bagaimanakah Saya Boleh Melaksanakan Perintah Shell secara Asynchronously dalam PHP Tanpa Menyekat?

Linda Hamilton
Lepaskan: 2024-12-06 14:37:12
asal
817 orang telah melayarinya

How Can I Asynchronously Execute Shell Commands in PHP Without Blocking?

Pelaksanaan Asynchronous Shell Commands

Apabila mengendalikan tugas intensif sumber dalam skrip PHP anda, selalunya diingini untuk menjalankannya di latar belakang untuk elakkan menyekat pelaksanaan kod lain. Satu kaedah biasa untuk melaksanakan perintah shell ialah shell_exec, tetapi ia biasanya memerlukan skrip untuk menunggu arahan selesai.

Untuk melaksanakan arahan shell tanpa menunggu ia selesai, anda boleh memanfaatkan teknik pelaksanaan latar belakang. Ini dicapai dengan mengubah hala keluaran standard dan strim ralat standard arahan shell kepada peranti nol.

Pertimbangkan kod PHP berikut:

shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');
Salin selepas log masuk

Dalam kod ini, kami menggunakan strategi berikut :

  • Kami menggunakan > /dev/null untuk mengubah hala keluaran standard perintah ke peranti null, membuangnya dengan berkesan.
  • Kami menggunakan 2>/dev/null untuk mengubah hala ralat standard arahan ke peranti null yang lain, sekali lagi membuang sebarang mesej ralat.
  • Akhir sekali, kami menambah & pada penghujung arahan untuk menjalankannya di latar belakang.

Teknik ini membolehkan anda menghasilkan arahan shell secara tidak segerak, membebaskan skrip PHP anda untuk terus melaksanakan tanpa menunggu arahan selesai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Perintah Shell secara Asynchronously dalam PHP Tanpa Menyekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan