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

Bagaimanakah Saya Boleh Melaksanakan Perintah Shell Secara Asynchronous dalam PHP?

Susan Sarandon
Lepaskan: 2024-12-31 00:19:10
asal
602 orang telah melayarinya

How Can I Execute Shell Commands Asynchronously in PHP?

Melaksanakan Perintah Shell Secara Asynchronous dalam PHP

Apabila melaksanakan skrip shell menggunakan PHP, selalunya wajar untuk melaksanakan operasi tak segerak tanpa menyekat pelaksanaan PHP. Ini amat berguna untuk proses yang panjang yang tidak sepatutnya menangguhkan permintaan PHP.

Walaupun PHP menawarkan pelbagai fungsi untuk pelaksanaan shell, termasuk exec(), shell_exec(), dan pcntl_fork(), tiada satu pun yang menyediakan secara langsung yang diingini tingkah laku tak segerak. Walau bagaimanapun, terdapat beberapa pendekatan yang boleh mencontohinya.

Menggunakan Proses Latar Belakang dengan '&'**

Jika skrip PHP tidak berkenaan dengan output daripada skrip shell, ia boleh dilaksanakan di latar belakang menggunakan & operator:

exec('path/to/script.sh &');
Salin selepas log masuk

Arahan ini melaksanakan skrip dalam proses yang berasingan dan serta-merta kembali ke skrip PHP, membenarkannya meneruskan pelaksanaan.

Mengubah hala Output dan Ralat Standard (/dev/null)

Untuk menyekat sepenuhnya output daripada shell skrip, > /dev/null 2>/dev/null & expression boleh dilampirkan pada perintah exec():

exec('path/to/script.sh > /dev/null 2>/dev/null &');
Salin selepas log masuk

Ini mengubah hala kedua-dua output standard (stdout) dan ralat standard (stderr) ke /dev/null , menyembunyikan output skrip dengan berkesan daripada permintaan PHP.

Pengalihan Alternatif Sintaks

Sintaks alternatif untuk mengubah hala output menggunakan &> /dev/null &:

exec('path/to/script.sh &> /dev/null &');
Salin selepas log masuk

Ini mempunyai kesan yang sama seperti > /dev/null sintaks tetapi menggabungkan pengalihan dengan latar belakang dalam satu ungkapan.

Dengan melaksanakan teknik ini, skrip PHP boleh melaksanakan skrip shell secara tidak segerak, membenarkan permintaan PHP meneruskan pelaksanaan tanpa menunggu skrip shell untuk lengkap.

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

sumber:php.cn
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