Perintah Linux

Perintah perangkap bash

Perintah perangkap bash
Perintah bash bawaan yang digunakan untuk menjalankan perintah saat shell menerima sinyal apa pun disebut 'jebakan'. Ketika suatu peristiwa terjadi maka bash mengirimkan pemberitahuan dengan sinyal apa pun. Banyak sinyal tersedia di bash. Sinyal bash yang paling umum adalah SIGINT (Signal Interrupt). Ketika pengguna menekan CTRL+C untuk menghentikan proses apa pun dari terminal, maka sinyal ini dikirim untuk memberi tahu sistem.  Bagaimana Anda dapat menggunakan perintah trap untuk menangani berbagai jenis sinyal dijelaskan dalam tutorial ini.

Sintaksis:

trap [-lp] [[arg] signal_spec… ]

atau

perangkap [aksi] [sinyal]
Kunci Deskripsi
-aku Ini digunakan untuk menampilkan daftar semua nama sinyal dengan nomor yang sesuai.
-p Ini digunakan untuk menampilkan perintah sinyal atau perintah perangkap untuk signal_spec.
argumen Ini digunakan untuk menjalankan perintah ketika shell menerima sinyal.
signal_spec Ini berisi nama sinyal atau nomor sinyal.

Perintah jebakan tanpa opsi dan argumen apa pun

Jalankan perintah berikut dari terminal untuk menampilkan daftar semua perintah yang terkait dengan setiap kondisi. Jika ada perintah 'trap' yang tidak disetel sebelumnya, maka perintah berikut tidak akan menampilkan informasi apa pun.

$ perangkap

Perintah jebakan dengan opsi -l

Jalankan perintah berikut dari terminal untuk menampilkan daftar semua nama sinyal dengan nomor.

$ perangkap -l

Output dari perintah di atas akan menampilkan daftar 64 sinyal dengan angka.

Atur perintah trap untuk ERR dan EXIT

Perintah pertama berikut akan menetapkan perintah 'trap' yang akan dijalankan ketika terjadi kesalahan shell atau shell keluar. Perintah 'jebakan' ini akan dihapus suhu.txt file dari lokasi saat ini. Perintah 'ls' digunakan untuk memeriksa suhu.txt file ada atau tidak di lokasi saat ini. akhirnya keluar perintah digunakan untuk menutup terminal dan menjalankan perintah 'jebakan' yang telah ditetapkan sebelumnya.

$ trap 'rm temp.txt' err keluar
$ l
$ keluar

Output berikut akan muncul setelah menjalankan perintah di atas.

Sekarang, jika pengguna membuka terminal lagi setelah keluar dan menjalankan perintah 'ls' maka suhu.txt file tidak akan ada.

Atur perintah 'trap' dengan nomor sinyal SIGUP, SIGQUIT dan SIGKILL

Nomor sinyal SIGUP, SIGQUIT dan SIGKILL adalah 1, 3 dan 9. Perintah pertama berikut akan membuat jebakan untuk ketiga sinyal ini. Ketika salah satu dari sinyal ini akan terjadi maka pesan “Perintah perangkap dijalankan”akan mencetak.  Jalankan perintah berikut dari terminal.

$ trap 'echo Perintah perangkap dijalankan' 1 3 9

Ketika pengguna akan menekan Ctrl+C untuk menghasilkan sinyal yang ditetapkan dengan perintah 'trap' maka then 'gema' perintah perintah perangkap akan dijalankan dan output berikut akan muncul:.

Setel perintah 'jebakan' untuk SIGTERM dalam skrip

SIGTERM sinyal digunakan untuk menghentikan proses segera dengan melepaskan sumber dayanya. Buat file bash bernama 'trapskrip.SH' dengan kode berikut. Perulangan for tak terbatas dideklarasikan dalam skrip yang akan mencetak teks secara terus-menerus hingga SIGTERM sinyal terjadi. Pengguna harus menekan Ctrl+Z untuk menghasilkan SIGTERM sinyal.

trapskrip.SH

#!/bin/bash
 
# Atur jebakan untuk sinyal SIGINT dan SIGTERM
trap "echo Program dihentikan." TANDA SIGTERM
 
#Tampilkan pesan untuk menghasilkan SIGTERM
echo "Tekan Ctrl+Z hentikan proses"
 
#Inisialisasi variabel penghitung, i
saya = 1
 
#deklarasikan tak terbatas untuk loop
untuk(;;)
melakukan
#Cetak pesan dengan penghitung i
echo "menjalankan loop selama $i kali"
#Tingkatkan penghitung satu per satu
((i++))
selesai

Jalankan skrip dengan menjalankan perintah berikut dan tekan Ctrl + Z untuk menghasilkan SIGTERM sinyal. Output serupa berikut akan muncul:.

$ bash trapskrip.SH

Setel perintah 'jebakan' untuk menjalankan fungsi berdasarkan sinyal tertentu

Anda dapat mengaitkan perintah 'jebakan' dengan fungsi apa pun yang ditentukan pengguna. Buat bash bernama fungsi perangkap.SH dan tambahkan skrip berikut. Di sini, fungsi khusus bernama fungsi() dideklarasikan untuk mencetak pesan sederhana, "Tugas selesai". Perulangan for-in didefinisikan untuk membaca dan mencetak daftar semua file dan folder dari direktori kerja saat ini. 'perangkap' perintah yang didefinisikan di awal daftar akan memanggil fungsi, fungsi() ketika program berakhir.

fungsi perangkap.SH

#!/bin/bash
# Panggil fungsi fungsi saat keluar
fungsi perangkap keluar
# Deklarasikan fungsi
fungsi fungsi()
 
echo "Tugas selesai"

# Baca file dan folder dari daftar direktori saat ini menggunakan for loop
untuk saya  di *
melakukan
gema "$i"
selesai

Jalankan skrip dari terminal.

Jalankan skrip.

$ bash trapfunc.SH

Output berikut menunjukkan bahwa, "Tugas selesai” teks dicetak setelah mencetak semua file dan folder dari direktori saat ini.

Kesimpulan

Tutorial ini menunjukkan bagaimana perintah 'trap' dapat digunakan di Linux untuk melakukan tugas otomatis apa pun berdasarkan sinyal yang dihasilkan. Ini membantu pengguna untuk melacak berbagai jenis kesalahan dan mengambil tindakan yang tepat yang dapat ditetapkan sebelumnya dengan menggunakan perintah ini. Banyak program atau skrip mengalokasikan beberapa sumber daya tertentu saat berjalan di sistem. Jika ada program atau skrip yang berjalan keluar atau berhenti secara tidak normal maka sumber daya yang digunakan oleh program itu akan diblokir. Perintah 'trap' dapat digunakan untuk menyelesaikan masalah ini. Tugas pembersihan sumber daya dapat dilakukan dengan mudah dengan menggunakan perintah ini. Harapan, pembaca akan mendapatkan ide yang jelas tentang penggunaan perintah ini setelah membaca tutorial ini.

Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...
Cara Menginstal League Of Legends di Ubuntu 14.04
Jika Anda adalah penggemar League of Legends, maka ini adalah kesempatan bagi Anda untuk menguji coba League of Legends. Perhatikan bahwa LOL didukung...
Instal Game Strategi OpenRA terbaru di Ubuntu Linux
OpenRA adalah mesin game Strategi Waktu Nyata Libre/Gratis yang membuat ulang game Westwood awal seperti Command & Conquer klasik: Red Alert. Mod yang...