Arahan tidur dan tunggu dalam Linux membolehkan anda menjalankan arahan pada kelajuan yang dipilih, atau menangkap dan memaparkan status keluar tugas selepas menunggu tugas itu selesai. sleep hanya memasukkan jeda bermasa antara arahan, manakala arahan tunggu memberitahu anda bahawa ia selesai sehingga selesai.
sleep akan dijeda untuk masa yang ditentukan. Ia biasanya digunakan dalam skrip, tetapi juga boleh digunakan dari baris arahan. Dalam contoh berikut, tidur dijeda selama 30 saat antara dua arahan tarikh.
[root@localhost ~]# date ; sleep 30 ; date Thu Nov 11 05:06:44 EST 2021 Thu Nov 11 05:07:14 EST 2021
sleep mengambil hujah berangka sebagai saat. Tetapi anda juga boleh membuatnya tidur untuk masa yang berbeza dengan menambahkan aksara dalam parameter:
Masa tidur pun boleh kurang dari 1 saat, cuma tambah .
.
sleep biasanya digunakan untuk menjalankan perintah secara berkala, seperti setiap 10 saat atau setiap minit, apabila anda ingin memantau beberapa aktiviti. Sebagai contoh, anda mungkin sedang menunggu rakan sekerja untuk log masuk ke pelayan fail. Anda mungkin menjalankan arahan seperti ini:
[root@localhost ~]# date ; sleep 10s ; date Thu Nov 11 05:11:09 EST 2021 Thu Nov 11 05:11:19 EST 2021
Anda boleh melihat perubahan dalam penggunaan memori.
[root@localhost ~]# date ; sleep .1 ; date Thu Nov 11 05:14:03 EST 2021 Thu Nov 11 05:14:03 EST 2021
wait menangkap status keluar dari proses latar belakang selepas menunggu proses latar belakang selesai. Anda juga boleh menggunakannya dalam skrip. Gantikan arahan tidur dengan proses yang anda mahu tunggu. Skrip ini juga memaparkan status keluar.
[root@localhost ~]# while true ; do who ; sleep 100 ; done
Barisan pertama memulakan arahan tidur di latar belakang. Baris kedua mendapat ID proses proses latar belakang yang paling baru dilaksanakan$!
. Skrip kemudian memaparkan mesej, menunggu proses selesai dan memaparkan status keluar.
Jika anda menggunakan wait -n (tiada parameter tambahan diperlukan), tunggu akan menunggu untuk sebarang tugasan latar belakang selesai. Dalam contoh di bawah, arahan sleep 6 selesai dahulu dan skrip tamat, tetapi dua proses tidur yang lain akan terus berjalan di latar belakang selama beberapa saat.
[root@localhost ~]# while true ; do free -h ; sleep 5 ; done
Jika anda menukarnya kepada skrip berikut, ia akan memberitahu anda apabila setiap proses tidur selesai. Disebabkan oleh pemasaan, ini akan berlaku dalam susunan terbalik dari semasa proses tidur bermula.
#!/bin/bash sleep 5 & process_id=$! echo “PID: $process_id” wait $process_id echo “Exit status: $?”
Nota: Proses menunggu mestilah "proses kanak-kanak" (proses yang dimulakan dalam shell semasa).
Ringkasan
Kedua-duanya boleh digunakan dalam skrip atau baris arahan. Walau bagaimanapun, arahan tunggu hanya berfungsi pada proses yang berjalan di latar belakang.
Atas ialah kandungan terperinci Cara menggunakan arahan Tidur dan Tunggu dalam sistem Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!