- Home
- »
- Scripting & Automasi
- »
- Bash Basic
- »
- Bash #41 Defining Traps
Share:
Table of Contents

🖥️ Pengantar
Saat menjalankan skrip Bash, sering kali kita ingin mengontrol bagaimana skrip merespons sinyal sistem seperti Ctrl+C (SIGINT) atau proses dihentikan (SIGTERM). Dengan menggunakan trap, kita bisa menangkap sinyal ini dan mengeksekusi tindakan tertentu, seperti membersihkan file sementara atau menampilkan pesan khusus sebelum skrip keluar.
Artikel ini akan membahas:
Mengenal trap dalam Bash – Apa itu trap dan mengapa digunakan.
Menangkap Sinyal dengan trap – Contoh implementasi SIGINT dan SIGTERM.
Menggunakan trap untuk Membersihkan Sumber Daya – Teknik menangani file sementara dan proses latar belakang.
Menggunakan trap untuk Logging dan Notifikasi – Contoh implementasi logging sebelum skrip keluar.
Praktik Terbaik dalam Penggunaan trap – Tips dan trik untuk scripting yang lebih andal.
Mari kita mulai! 🚀
📌 1. Mengenal trap dalam Bash
Perintah trap dalam Bash memungkinkan kita menangkap sinyal tertentu dan mengeksekusi perintah sebelum skrip berhenti.
🔹 Keuntungan Menggunakan trap:
Menghindari terminasi mendadak akibat Ctrl+C (SIGINT).
Membersihkan file sementara sebelum skrip keluar.
Menghentikan proses latar belakang yang masih berjalan.
Memungkinkan logging atau notifikasi sebelum keluar.
📌 2. Menangkap Sinyal dengan trap
Kita bisa menggunakan trap untuk menangkap sinyal tertentu dan mengeksekusi perintah khusus saat sinyal diterima.
🔹 Contoh Dasar Menangkap SIGINT (Ctrl+C)
#!/bin/bash |
📌 Catatan:
Saat pengguna menekan Ctrl+C, skrip akan menangkap SIGINT dan menampilkan pesan sebelum keluar.
🔹 Menangkap Beberapa Sinyal Sekaligus (SIGINT dan SIGTERM)
trap ‘echo “Proses dihentikan dengan SIGINT atau SIGTERM.”; exit’ SIGINT SIGTERM
📌 Catatan:
Skrip akan menangkap kedua sinyal (SIGINT dan SIGTERM) dengan satu perintah trap.
📌 3. Menggunakan trap untuk Membersihkan Sumber Daya
Jika skrip membuat file sementara atau menjalankan proses latar belakang, kita bisa menggunakan trap untuk membersihkannya sebelum skrip keluar.
🔹 Contoh Membersihkan File Sementara
#!/bin/bash |
📌 Catatan:
EXIT digunakan untuk memastikan perintah dijalankan saat skrip berakhir, baik karena error atau karena selesai normal.
🔹 Menghentikan Proses Latar Belakang Sebelum Keluar
#!/bin/bash |
📌 Catatan:
Skrip ini menjalankan proses di latar belakang (sleep 100 &).
trap akan menghentikan proses latar belakang saat skrip berakhir.
📌 4. Menggunakan trap untuk Logging dan Notifikasi
Dalam banyak kasus, kita mungkin ingin menyimpan log atau mengirim notifikasi sebelum skrip berakhir.
🔹 Contoh Menyimpan Log Sebelum Keluar
#!/bin/bash |
📌 Catatan:
trap akan menambahkan timestamp ke file log saat skrip berhenti.
🔹 Contoh Mengirim Notifikasi Sebelum Skrip Berakhir
#!/bin/bash |
📌 Catatan:
trap akan mengirim email notifikasi sebelum skrip keluar.
📌 5. Praktik Terbaik dalam Penggunaan trap
✅ Gunakan EXIT untuk Cleanup yang Konsisten
trap ‘echo “Proses dihentikan.”; exit’ SIGINT SIGTERM |
✅ Tangkap Sinyal SIGINT dan SIGTERM untuk Skrip yang Berjalan Lama
trap ‘echo “Proses dihentikan.”; exit’ SIGINT SIGTERM |
✅ Pastikan trap Ditambahkan di Awal Skrip
trap ‘echo “Menangani sinyal sebelum menjalankan perintah lain.”‘ SIGINT |
📌 Kesimpulan
Dengan trap, kita dapat menangkap sinyal sistem dan mengontrol perilaku skrip saat sinyal diterima. Dalam artikel ini, kita telah membahas:
✅ Cara menangkap sinyal seperti SIGINT dan SIGTERM. ✅ Implementasi trap untuk membersihkan file sementara dan menghentikan proses latar belakang. ✅ Penggunaan trap untuk logging dan notifikasi otomatis. ✅ Praktik terbaik untuk scripting yang lebih andal.
Artikel Selanjutnya: 🔄 Ignoring Signals – Mengabaikan sinyal tertentu agar tidak mengganggu jalannya skrip.
📚 Daftar Pustaka
Shotts, W. E. (2019). The Linux Command Line: A Complete Introduction. No Starch Press.
GNU Bash Manual (2023). GNU Bash Reference Manual. Retrieved from https://www.gnu.org/software/bash/manual/