Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menjalankan Perintah Shell Secara Asynchronous dalam PHP?

Bagaimanakah Saya Boleh Menjalankan Perintah Shell Secara Asynchronous dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 15:27:11432semak imbas

How Can I Run Shell Commands Asynchronously in PHP?

Melaksanakan Perintah Shell di Latar Belakang dengan PHP

Apabila menjalankan tugas intensif proses, seperti melaksanakan skrip shell, selalunya diingini untuk menyelesaikan tugasan di latar belakang. Ini membolehkan pengguna terus menggunakan tapak web atau aplikasi tanpa perlu menunggu tugasan selesai.

Menggunakan shell_exec()

fungsi shell_exec() PHP melaksanakan a perintah shell dan mengembalikan outputnya. Walau bagaimanapun, shell_exec() memerlukan skrip untuk menunggu arahan selesai sebelum meneruskan.

Melaksanakan Perintah di Latar Belakang

Untuk melaksanakan arahan shell di latar belakang tanpa menunggu ia selesai, gunakan kod berikut:

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

Kod ini menambah parameter berikut pada penghujung perintah shell_exec():

  • > /dev/null 2>/dev/null: Mengubah hala keluaran standard arahan dan output ralat ke /dev/null, dengan berkesan membuangnya.
  • &: Menjalankan arahan di latar belakang, membenarkan skrip diteruskan tanpa menunggu arahan selesai.

Nota: Kaedah ini tidak kembali output arahan atau kod status. Jika anda memerlukan akses kepada keputusan arahan, pertimbangkan untuk menggunakan pendekatan yang berbeza, seperti menggunakan exec() dengan arahan nohup atau mencipta proses khusus untuk tugas latar belakang.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Perintah Shell Secara Asynchronous dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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