GNU/Linux >> Belajar Linux >  >> Linux

Cara Menjalankan Perintah Untuk Waktu Tertentu Di Linux

Suatu hari saya mentransfer file besar menggunakan rsync ke sistem lain di jaringan area lokal saya. Karena ini adalah file yang sangat besar, Butuh sekitar 20 menit untuk menyelesaikannya. Saya tidak ingin menunggu lebih lama lagi, dan saya juga tidak ingin menghentikan proses secara manual dengan menekan CTRL+C juga. Saya hanya ingin tahu apakah ada cara mudah untuk menjalankan perintah untuk waktu tertentu dan mematikannya secara otomatis setelah waktu habis di sistem operasi mirip Unix - maka posting ini. Baca terus.

Jalankan Perintah Untuk Waktu Tertentu di Linux

Kita dapat melakukannya dengan dua metode.

Metode 1 - Menggunakan perintah "batas waktu"

Metode yang paling umum adalah menggunakan batas waktu perintah untuk tujuan ini. Bagi mereka yang tidak tahu, perintah timeout akan secara efektif membatasi waktu eksekusi absolut dari suatu proses. Perintah timeout adalah bagian dari paket GNU coreutils, jadi perintah ini sudah diinstal sebelumnya di semua sistem GNU/Linux.

Katakanlah, Anda ingin menjalankan perintah hanya untuk waktu tertentu, dan kemudian mematikannya secara otomatis setelah waktu berlalu. Untuk melakukannya, kami menggunakan:

$ timeout <time-limit-interval> <command>

Misalnya, perintah berikut akan berhenti setelah 10 detik.

$ timeout 10s tail -f /var/log/pacman.log

Anda juga tidak perlu menentukan akhiran "s" untuk detik. Perintah berikut sama seperti di atas.

$ timeout 10 tail -f /var/log/pacman.log

Sufiks lain yang tersedia adalah:

  • 'm' selama beberapa menit,
  • 'h' selama berjam-jam
  • 'd' selama berhari-hari.

Jika Anda menjalankan tail -f /var/log/pacman.log . ini perintah, itu akan terus berjalan sampai Anda mengakhirinya secara manual dengan menekan CTRL + C. Namun, jika Anda menjalankannya bersama dengan batas waktu perintah, itu akan dimatikan secara otomatis setelah interval waktu yang diberikan.

Untuk berjaga-jaga jika perintah masih berjalan bahkan setelah waktu habis, Anda dapat mengirim kill sinyal seperti di bawah ini.

$ timeout -k 20 10 tail -f /var/log/pacman.log

Dalam hal ini, jika Anda perintah ekor masih berjalan setelah 10 detik, perintah batas waktu akan mengirimkannya sinyal mematikan setelah 20 detik dan mengakhirinya.

Perintah Tmeout dapat sangat berguna saat memecahkan masalah perangkat keras. Misalnya, jalankan perintah berikut untuk menampilkan semua pesan dari buffer ring kernel, tetapi hanya 10 detik.

$ timeout 10 dmesg -w

Untuk detail lebih lanjut, periksa halaman manual.

$ man timeout

Terkadang, program tertentu mungkin membutuhkan waktu lama untuk diselesaikan dan akhirnya membekukan sistem Anda. Dalam kasus seperti itu, Anda dapat menggunakan trik ini untuk mengakhiri proses secara otomatis setelah waktu tertentu.

Juga, pertimbangkan untuk menggunakan Cpulimit , aplikasi sederhana untuk membatasi penggunaan CPU dari suatu proses. Untuk lebih jelasnya, periksa tautan berikut.

  • Cara Membatasi Penggunaan CPU Suatu Proses Di Linux

Metode 2 - Menggunakan program "Batas Waktu"

Utilitas Timelimit mengeksekusi perintah yang diberikan dengan argumen yang diberikan dan menghentikan proses yang muncul setelah waktu tertentu dengan sinyal yang diberikan. Pertama, ini akan melewati peringatan sinyal dan kemudian setelah waktu habis, itu akan mengirim membunuh sinyal.

Berbeda dengan utilitas batas waktu, Timelimit memiliki lebih banyak opsi. Anda dapat memberikan sejumlah argumen seperti killsig, warnsig, killtime, warntime, dll.

Ini tersedia di repositori default sistem berbasis Debian. Jadi, Anda dapat menginstalnya menggunakan perintah:

$ sudo apt-get install timelimit

Untuk sistem berbasis Arch, tersedia di AUR. Jadi, Anda dapat menginstalnya menggunakan program pembantu AUR seperti Pacaur , Pengemas , Yay , Yaourt dll.

Untuk distribusi lainnya, unduh sumber dari sini dan menginstalnya secara manual.

Setelah menginstal program Timelimit, jalankan perintah berikut untuk waktu tertentu, misalnya 10 detik:

$ timelimit -t10 tail -f /var/log/pacman.log

Jika Anda menjalankan batas waktu tanpa argumen apa pun, itu akan menggunakan nilai default:warntime=3600 detik , warnsig=15 , waktu membunuh=120 , killsig=9 .

Untuk detail lebih lanjut, lihat halaman manual dan situs web proyek yang diberikan di akhir panduan ini.

$ man timelimit

Dan, itu saja untuk hari ini. Saya harap ini berguna. Lebih banyak barang bagus akan datang. Tetap disini!

Semangat!


Linux
  1. Tutorial Perintah waktu Linux untuk Pemula (dengan Contoh)

  2. Cara menonaktifkan perintah khusus untuk pengguna tertentu di Linux

  3. Cara Menjadwalkan Tugas Menggunakan di di Linux

  1. Cara Menggunakan Perintah Sentuh Linux + Contoh

  2. linux:cara menjalankan perintah di direktori tertentu

  3. 'tail -f' untuk jangka waktu tertentu

  1. Cara menggunakan Perintah Su di Linux

  2. DSH – Jalankan Perintah Linux Pada Banyak Host Sekaligus

  3. Bagaimana Cara Menjalankan Aplikasi Untuk Waktu yang Ditetapkan Di Shell?