Pendahuluan
Ketika pengguna mengeluarkan beberapa urutan perintah di Linux, perintah segera dieksekusi satu demi satu atau secara bersamaan (mis., Perintah tee). Namun, terkadang perlu untuk menunda eksekusi perintah dan menyediakan waktu yang cukup bagi sistem untuk menghasilkan hasil yang diharapkan.
Dalam tutorial ini, Anda akan mempelajari cara menggunakan sleep
Linux perintah untuk menunda eksekusi perintah di terminal dan skrip shell.
Prasyarat
- Sistem yang menjalankan Linux
- Akses ke baris perintah
Apa yang Dilakukan Perintah tidur Linux?
sleep
perintah menangguhkan proses pemanggilan perintah berikutnya untuk jangka waktu tertentu. Properti ini berguna ketika eksekusi perintah berikut bergantung pada penyelesaian yang berhasil dari perintah sebelumnya.
Sintaks Perintah Linux sleep Dijelaskan
Sintaks sleep
perintahnya sederhana:
sleep [number]
Pada contoh di atas, setelah sleep 5
dieksekusi, prompt perintah kedua muncul dengan penundaan 5 detik.
Secara default, sistem membaca nomor setelah sleep
sebagai jumlah detik. Untuk menentukan satuan waktu lainnya, gunakan sintaks berikut:
sleep [number][unit]
sleep
perintah menerima angka floating-point. Ini memungkinkan beberapa nilai, yang semuanya ditambahkan bersama untuk menghitung durasi sleep
.
Unit yang tersedia adalah:
s
– detikm
– menith
– jamd
– hari
Untuk menghentikan sleep
setelah dimulai dan sebelum masa tunggu yang ditentukan berakhir, tekan Ctrl + C
.
Untuk melihat bantuan untuk sleep
perintah, ketik:
sleep --help
Untuk detail versi, ketik:
sleep --version
Contoh Perintah Linux sleep
Bagian berikut berisi contoh penggunaan sleep
perintah di terminal atau skrip shell.
Menyiapkan Alarm
Gunakan sleep
untuk memberitahu sistem untuk memutar file mp3 setelah jangka waktu tertentu. Contoh menggunakan mplayer:
sleep 7h 30m && mplayer alarm.mp3
Menunda Perintah di Terminal
sleep
berguna untuk menegakkan waktu antara eksekusi dua perintah. Contoh berikut membuat echo
perintah dijalankan dalam interval satu detik:
sleep 1 && echo "one" && sleep 1 && echo "two"
Menetapkan Variabel ke Perintah tidur
Dimungkinkan untuk menetapkan variabel ke sleep
memerintah. Perhatikan skrip shell berikut:
#!/bin/bash
SLEEP_INTERVAL="30"
CURRENT_TIME=$(date +"%T")
echo "Time before sleep: ${CURRENT_TIME}"
echo "Sleeping for ${SLEEP_INTERVAL} seconds"
sleep ${SLEEP_INTERVAL}
CURRENT_TIME=$(date +"%T")
echo "Time after sleep: ${CURRENT_TIME}"
Script mendefinisikan variabel yang disebut SLEEP_INTERVAL
yang nilainya kemudian digunakan sebagai argumen untuk sleep
memerintah. Keluaran dari contoh skrip ini menunjukkan bahwa eksekusi berlangsung selama 30 detik:
Tentukan Interval Pemeriksaan
Contoh berikut mengilustrasikan penggunaan sleep
perintah dalam skrip yang memeriksa apakah situs web sedang online. Skrip berhenti jika berhasil melakukan ping ke situs web, dan sleep
memperkenalkan penundaan 10 detik antara ping yang gagal.
#!/bin/bash
while :
do
if ping -c 1 www.google.com &> /dev/null
then
echo "Google is online"
break
fi
sleep 10
done
Berikan Waktu untuk Penyelesaian Operasi
Anda mungkin menjalankan skrip bash yang secara internal memanggil dua skrip bash lainnya – satu yang menjalankan tes di latar belakang dan yang lainnya mencetak hasilnya. Gunakan sleep
untuk mencegah skrip kedua mencetak hasil yang salah jika dijalankan sebelum skrip pertama selesai:
while kill -0 $BACK_PID ; do
echo "Waiting for the process to end"
sleep 1
done
kill -0 $BACK_PID
perintah memeriksa apakah proses skrip pertama masih berjalan. Jika ya, pesan akan dicetak dan tidur selama 1 detik sebelum memeriksa lagi.
Prediksi Latensi
Gunakan sleep
untuk memungkinkan latensi eksekusi perintah tertentu. Cuplikan skrip di bawah ini menunjukkan bagaimana sleep
memberikan waktu yang cukup bagi CPU untuk melakukan perhitungan sebelum iterasi berikutnya.
for (( i = 1 ; i <= 250 ; i++ ));
do
sleep 1
qsub computation"${i}".pbs
done