GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Menggunakan Perintah Timeout di Linux

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

Perintah ini berguna saat Anda ingin menjalankan perintah yang tidak memiliki opsi batas waktu bawaan, atau menghentikan proses setelah beberapa waktu berjalan.

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

Cara Menggunakan Perintah Timeout

Sintaks untuk perintah timeout adalah sebagai berikut:

timeout [OPTIONS] DURATION COMMAND [ARG]…

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

  • s – detik (detik) (ini adalah opsi default)
  • m – menit (menit)
  • h – jam (jam)
  • d – hari (hari)

Bila 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 perintah timeout :

  • Hentikan perintah ping setelah lima detik::waktu habis 5 ping 8.8.8.8
  • Hentikan perintah setelah lima menit:batas waktu 5m ping 8.8.8.8
  • Hentikan perintah setelah satu menit enam detik:batas waktu 1.1m ping 8.8.8.8

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

sudo timeout 300 tcpdump -n -w data.pcap

Mengirim Sinyal Tertentu

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

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

sudo timeout -s SIGKILL ping 8.8.8.8

Sinyal dapat ditentukan dengan namanya seperti SIGKILL atau angka 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 perintah kill -l :

kill -l

Hentikan proses yang macet

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

Untuk memastikan perintah yang dipantau telah berhenti, gunakan opsi -k ( --kill-after ) diikuti dengan periode waktu. Ketika opsi ini digunakan setelah batas waktu yang diberikan tercapai, perintah timeout mengirimkan sinyal SIGKILL ke program yang sesuai dengan input pengguna.

Dalam contoh berikut, timeout menjalankan perintah selama satu menit, dan jika tidak dihentikan, itu akan "membunuh" program setelah sepuluh detik:

sudo timeout -k 10 1m ping 8.8.8.8
timeout -k “./test.sh”

Proses akan dihentikan setelah batas waktu yang diberikan tercapai meskipun macet.

Mempertahankan Status Keluar

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

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

timeout --preserve-status 5 ping 8.8.8.8

Menjalankan perintah di Latar Depan

Secara default, ini timeout menjalankan perintah di latar belakang. Jika ingin menjalankan perintah di Foreground, gunakan opsi --foreground :

timeout --foreground 5m ./script.sh

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

Kesimpulan

Perintah adalah timeout digunakan untuk menjalankan perintah tertentu dengan batas waktu sesuai keinginan pengguna.

Perintah timeout adalah perintah sederhana yang tidak memiliki banyak pilihan. Biasanya Anda akan menggunakan perintah timeout dengan hanya dua argumen, durasi, dan perintah yang akan terjadi.


Linux
  1. Pengantar menggunakan tcpdump di baris perintah Linux

  2. Kuasai perintah Linux ls

  3. Perintah cari di Linux

  1. Menggunakan kekuatan di baris perintah Linux

  2. Pengantar perintah alternatif di Linux

  3. Hapus file di Linux menggunakan nomor inode

  1. Kiat untuk menggunakan perintah teratas di Linux

  2. Menggunakan Perintah gratis Linux

  3. Perintah Timeout di Linux