Saya ingin membatasi waktu grep
perintah proses diizinkan untuk menjalankan atau hidup.
Sebagai contoh. Saya ingin melakukan hal berikut:
grep -qsRw -m1 "parameter" /var
Tetapi sebelum menjalankan grep
perintah, saya ingin membatasi berapa lama grep
proses ini berjalan, katakan tidak lebih dari 30 detik.
Bagaimana saya melakukan ini?
Dan jika bisa, bagaimana cara mengembalikan atau mengatur ulang agar tidak memiliki batas waktu sesudahnya.
timeout
, dan Anda bahkan mendapat instruksi tentang cara menginstalnya. Tidak sopan mengabaikan jawaban ini dan kemudian menggandakan pertanyaan Anda.Jawaban:
Anda dapat menggunakan timelimit , ini tersedia di ubuntu default atau Anda dapat mengompilasinya sendiri.
timelimit mengeksekusi perintah dan mengakhiri proses spawned setelah waktu tertentu dengan sinyal yang diberikan. Sinyal "peringatan" dikirim terlebih dahulu, kemudian, setelah batas waktu, sinyal "bunuh", mirip dengan cara init (8) beroperasi pada shutdown.
sumber
sudo aptitude install timelimit
. Bekerja sangat bagus setelah diinstal.Berikut ini beberapa bash yang sedikit hackish untuk itu:
Pada dasarnya, ini memulai pencarian di latar belakang, kemudian memulai subkulit yang menunggu 30 detik dan kemudian membunuh proses pencarian. Jika pencarian membutuhkan waktu <30 detik, prosesnya akan mati. Bukan ide yang bagus untuk membunuh proses yang sudah mati karena ada kemungkinan sangat kecil sesuatu yang lain akan menggunakan kembali pid, tetapi untuk sesuatu seperti ini umumnya tidak apa-apa. Terakhir, pencarian diletakkan kembali di latar depan dan akan berjalan sampai selesai atau terbunuh.
sumber
Buat file baru yang disebut "tgrep" dan masukkan yang berikut ini (atau panggil apa saja yang Anda inginkan):
Selanjutnya, jalankan
chmod a+x tgrep
. Sekarang jika Anda ingin menggunakannya Anda bisa mengetikAtau Anda dapat menggunakannya sebagai tgrep (tanpa ./ dan dapat menggunakannya dari direktori mana pun) jika Anda meletakkannya di direktori yang terdapat dalam variabel $ PATH Anda (seperti / home / dan / bin /, jika itu ada di variabel $ PATH Anda, kalau tidak Anda bisa menambahkannya).
sumber