Di Linux, menunggu dan hibernasi adalah konsep yang sangat penting. Ia boleh membantu kami mengoptimumkan sumber sistem dan meningkatkan prestasi program. Walau bagaimanapun, dalam pengaturcaraan sebenar, kadangkala kita perlu membiarkan program "tidur" untuk satu tempoh masa atau menunggu operasi tertentu selesai sebelum meneruskan. Dalam artikel ini, kami akan memperkenalkan kaedah tunggu untuk hibernasi dalam Linux secara terperinci, supaya anda boleh memahami dengan lebih mendalam tentang prinsip dan penggunaannya.
Arahan tidur
Perintahsleep akan dijeda untuk masa yang ditentukan. Ia biasanya digunakan dalam skrip, tetapi juga berfungsi pada baris arahan. Dalam contoh di bawah, 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
Perintah tidur mengambil hujah berangka sebagai bilangan 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
Tunggu arahan
Perintahwait 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).
Ringkasnya, menunggu dan hibernasi adalah fungsi yang sangat praktikal dalam sistem Linux, yang boleh membantu kami menjimatkan sumber sistem dan meningkatkan prestasi program. Dalam artikel ini, kami memperkenalkan 5 kaedah menunggu biasa di Linux dan menjalankan analisis terperinci tentang penggunaan, kelebihan dan keburukannya. Saya berharap melalui pengenalan artikel ini, anda boleh menguasai teknologi tunggu dan tidur ini dengan lebih baik dan menggunakannya secara fleksibel dalam pengaturcaraan sebenar.
Atas ialah kandungan terperinci Panduan menunggu hibernasi di Linux: Analisis komprehensif 5 kaedah menunggu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!