GNU/Linux >> Belajar Linux >  >> Linux

Perintah Timeout di Linux

timeout adalah utilitas baris perintah yang menjalankan perintah tertentu dan menghentikannya jika masih berjalan setelah jangka waktu tertentu. Dengan kata lain, timeout memungkinkan Anda untuk menjalankan perintah dengan batas waktu. timeout command adalah bagian dari paket utilitas inti GNU, yang diinstal pada hampir semua distribusi Linux.

Ini berguna saat Anda ingin menjalankan perintah yang tidak memiliki opsi batas waktu bawaan.

Pada artikel ini, kami akan menjelaskan cara menggunakan Linux timeout perintah.

Cara Menggunakan timeout Perintah #

Sintaks untuk timeout perintahnya adalah sebagai berikut:

timeout [OPTIONS] DURATION COMMAND [ARG]…

DURATION dapat berupa bilangan bulat positif atau angka floating-point, diikuti dengan akhiran unit opsional:

  • s - detik (default)
  • m - menit
  • h - jam
  • d - hari

Ketika tidak ada unit yang digunakan, defaultnya adalah detik. Jika durasi disetel ke nol, batas waktu terkait akan dinonaktifkan.

Opsi perintah harus diberikan sebelum argumen.

Berikut adalah beberapa contoh dasar yang menunjukkan cara menggunakan timeout perintah:

  • Mengakhiri perintah setelah lima detik:

    timeout 5 ping 8.8.8.8
  • Mengakhiri perintah setelah lima menit:

    timeout 5m ping 8.8.8.8
  • Mengakhiri perintah setelah satu menit enam detik:

    timeout 1.1m ping 8.8.8.8

Jika Anda ingin menjalankan perintah yang memerlukan hak istimewa yang lebih tinggi seperti tcpdump , tambahkan sudo sebelum timeout :

sudo timeout 300 tcpdump -n -w data.pcap

Mengirim Sinyal Spesifik #

Jika tidak ada sinyal yang diberikan, timeout mengirimkan SIGTERM sinyal ke perintah yang dikelola ketika batas waktu tercapai. Anda dapat menentukan sinyal mana yang akan dikirim menggunakan -s (--signal ) pilihan.

Misalnya, untuk mengirim SIGKILL ke ping perintah setelah satu menit, Anda akan menggunakan:

sudo timeout -s SIGKILL ping 8.8.8.8

Anda dapat menentukan sinyal dengan nama, seperti SIGKILL , atau nomornya seperti 9 . Perintah berikut ini identik dengan yang sebelumnya:

sudo timeout -s 9 ping 8.8.8.8

Untuk mendapatkan daftar semua sinyal yang tersedia, gunakan kill -l perintah:

kill -l

Membunuh Proses yang Terjebak #

SIGTERM , sinyal default yang dikirim ketika batas waktu terlampaui, dapat ditangkap atau diabaikan oleh beberapa proses. Dalam situasi tersebut, proses terus berjalan setelah sinyal terminasi dikirim.

Untuk memastikan perintah yang dipantau dimatikan, gunakan -k (--kill-after ) pilihan diikuti dengan jangka waktu. Ketika opsi ini digunakan setelah batas waktu yang diberikan tercapai, timeout perintah mengirimkan SIGKILL sinyal ke program terkelola yang tidak dapat ditangkap atau diabaikan.

Pada contoh berikut, timeout menjalankan perintah selama satu menit, dan jika tidak dihentikan, perintah akan dimatikan setelah sepuluh detik:

sudo timeout -k 10 1m ping 8.8.8.8

batas waktu -k “./test.sh”

dibunuh setelah batas waktu yang diberikan tercapai

Mempertahankan Status Keluar #

timeout mengembalikan 124 ketika batas waktu tercapai. Jika tidak, ia mengembalikan status keluar dari perintah terkelola.

Untuk mengembalikan status keluar dari perintah bahkan ketika batas waktu tercapai, gunakan --preserve-status pilihan:

timeout --preserve-status 5 ping 8.8.8.8

Berlari di Latar Depan #

Secara default, timeout menjalankan perintah terkelola di latar belakang. Jika Anda ingin menjalankan perintah di latar depan, gunakan --foreground pilihan:

timeout --foreground 5m ./script.sh

Opsi ini berguna saat Anda ingin menjalankan perintah interaktif yang memerlukan input pengguna.

Kesimpulan #

timeout perintah digunakan untuk menjalankan perintah yang diberikan dengan batas waktu.

timeout adalah perintah sederhana yang tidak memiliki banyak opsi. Biasanya Anda akan memanggil timeout hanya dengan dua argumen, durasi dan perintah terkelola.

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


Linux
  1. Perintah mv Linux

  2. Linux du perintah

  3. Perintah ip Linux

  1. Perintah ifconfig Linux

  2. Perintah Waktu Linux

  3. Perintah cd Linux

  1. Perintah Ping di Linux

  2. Perintah Tonton Linux

  3. Perintah Xargs di Linux