Terkadang, saat Anda menjalankan perintah di Linux, Anda mungkin ingin menjalankannya untuk jangka waktu tertentu. Ada utilitas baris perintah - batas waktu - yang secara khusus dikembangkan untuk tujuan ini. Dalam artikel ini, kita akan membahas dasar-dasar perintah ini menggunakan beberapa contoh yang mudah dipahami.
Namun sebelum kita melakukannya, perlu disebutkan bahwa semua contoh dalam tutorial ini telah diuji pada mesin Ubuntu 18.04 LTS.
Perintah batas waktu Linux
Seperti namanya, perintah timeout di Linux memungkinkan Anda menjalankan perintah dengan batas waktu. Berikut sintaksnya:
timeout [OPTION] DURATION COMMAND [ARG]...
Dan inilah cara halaman manual alat menjelaskannya:
timeout - run a command with a time limit
Start COMMAND, and kill it if still running after DURATION
Berikut adalah beberapa contoh gaya Tanya Jawab yang akan memberi Anda gambaran yang lebih baik tentang cara kerja alat ini.
Q1. Bagaimana cara menggunakan perintah batas waktu?
Penggunaan dasar cukup mudah - cukup jalankan 'timeout' dengan memasukkan nilai timeout (dianggap dalam detik) serta perintah yang ingin Anda jalankan.
Misalnya, jika Anda ingin timeout perintah ping setelah 5 detik, berikut ini cara menggunakan timeout dalam kasus ini.
timeout 5 ping google.com
Q2. Bagaimana cara mendapatkan status keluar perintah di output?
Secara default, jika perintah batas waktu berhasil, ia mengembalikan 124 sebagai status keluar. Berikut ini contohnya:
Dalam kasus pertama, saya membiarkan perintah timeout berjalan dengan sukses, dan seperti yang Anda lihat, status keluarnya adalah 124. Namun, selama menjalankan kedua, saya dengan paksa mematikan perintah menggunakan Ctrl+C, dan dalam kasus itu, status keluar adalah 0.
Tetapi jika Anda ingin timeout untuk mengembalikan status perintah input meskipun timeout berjalan dengan sukses, Anda harus menggunakan opsi --preserve-status command line.
Misalnya:
timeout --preserve-status 5 ping google.com
Q3. Bagaimana cara mengubah batas waktu pengiriman sinyal?
Tidak ada gunanya menebak bahwa batas waktu bekerja dengan mengirimkan sinyal ke perintah input sehingga yang terakhir berhenti mengeksekusi dengan mendekati batas waktu. Secara default, SIGTERM
digunakan oleh perintah.
Namun, jika Anda mau, Anda dapat mengubah sinyal yang dikirim oleh batas waktu. Untuk ini, Anda harus menggunakan opsi baris perintah -s dan menentukan sebagai input sinyal yang ingin Anda kirim timeout.
Misalnya:
timeout -s SIGKILL [COMMAND]
Untuk mengambil daftar sinyal yang tersedia yang dapat Anda kirim, jalankan perintah berikut:
kill -l
Q4. Bagaimana cara membuat timeout otomatis mengirim sinyal KILL?
Terkadang, Anda mungkin menemukan perintah input yang terus berjalan bahkan setelah batas waktu mengirimkan sinyal awal. Untuk kasus seperti ini, batas waktu menawarkan opsi '--kill-after'.
Begini cara halaman manual menjelaskannya:
-k, --kill-after=DURATION
also send a KILL signal if COMMAND is still running
this long after the initial signal was sent
Jadi seperti yang Anda lihat, Anda perlu menentukan durasi untuk memberi tahu batas waktu setelah berapa lama sinyal ini akan dikirim.
Kesimpulan
Bergantung pada jenis pekerjaan yang Anda lakukan, perintah batas waktu dapat terbukti menjadi alat yang sangat berguna. Di sini, dalam tutorial ini, kita telah membahas sebagian besar opsi yang ditawarkan utilitas ini. Setelah selesai berlatih, Anda dapat mempelajari lebih lanjut tentang batas waktu dengan membuka halaman manualnya.