- Home
- »
- Scripting & Automasi
- »
- Bash Basic
- »
- Bash #43 Customizing Signal Responses
Share:
Table of Contents

🖥️ Pengantar
Saat menjalankan skrip Bash, ada kalanya kita ingin memberikan respons khusus terhadap sinyal tertentu, bukan sekadar mengabaikannya. Dengan menggunakan trap, kita dapat menyesuaikan perilaku skrip saat menerima sinyal, misalnya:
🔹 SIGINT (Ctrl+C) – Menampilkan pesan sebelum keluar. 🔹 SIGTERM – Membersihkan file sementara sebelum skrip dihentikan. 🔹 SIGHUP – Menyimpan status sebelum terminal ditutup.
Artikel ini akan membahas:
Mengapa Menyesuaikan Respons Sinyal dalam Bash? – Manfaat utama dari penyesuaian ini.
Menggunakan trap untuk Menangani Sinyal Secara Kustom – Implementasi dasar.
Menerapkan Penyesuaian Respons dalam Skrip – Studi kasus.
Menyesuaikan Respons Berdasarkan Jenis Sinyal – Teknik lanjutan.
Praktik Terbaik dalam Penyesuaian Sinyal – Tips untuk implementasi yang optimal.
Mari kita mulai! 🚀
📌 1. Mengapa Menyesuaikan Respons Sinyal dalam Bash?
Biasanya, sinyal yang dikirimkan ke proses memiliki efek standar. Namun, dalam beberapa skenario, kita mungkin ingin mengontrol bagaimana skrip bereaksi terhadap sinyal tersebut untuk menghindari kesalahan dan meningkatkan keandalan.
🔹 Contoh Penggunaan:
Menyimpan status kerja sebelum proses dihentikan.
Membersihkan sumber daya sebelum keluar.
Mencegah penghentian skrip yang sedang menjalankan tugas penting.
📌 2. Menggunakan trap untuk Menangani Sinyal Secara Kustom
Bash menyediakan perintah trap untuk menangani sinyal tertentu dengan cara yang disesuaikan.
🔹 Sintaks Dasar:
trap ‘command’ SIGNAL
command → Perintah yang akan dijalankan saat sinyal diterima.
SIGNAL → Nama sinyal yang akan ditangani.
🔹 Contoh Dasar:
trap ‘echo “SIGINT diterima. Skrip akan berhenti.”; exit’ SIGINT |
📌 Catatan:
Jika pengguna menekan Ctrl+C, skrip akan menangkap SIGINT dan menampilkan pesan sebelum keluar.
📌 3. Menerapkan Penyesuaian Respons dalam Skrip
Kita dapat menerapkan trap untuk berbagai skenario dalam skrip Bash.
🔹 Menampilkan Pesan dan Menunggu Konfirmasi Sebelum Keluar:
#!/bin/bash |
📌 Catatan:
Pertama kali Ctrl+C ditekan, hanya pesan yang muncul, tetapi skrip tetap berjalan.
Jika ditekan lagi, skrip akan keluar.
🔹 Membersihkan File Sementara Sebelum Keluar:
#!/bin/bash |
📌 Catatan:
EXIT akan menangkap semua cara keluar dari skrip dan memastikan file sementara dihapus.
📌 4. Menyesuaikan Respons Berdasarkan Jenis Sinyal
Setiap sinyal dapat memiliki respons yang berbeda sesuai dengan kebutuhan.
🔹 Menangani SIGTERM dengan Pembersihan File dan Logging:
trap ‘echo “SIGTERM diterima. Membersihkan sumber daya…”; rm -f /tmp/app.lock; exit’ SIGTERM |
📌 Catatan:
Jika skrip dihentikan dengan kill, pesan akan muncul dan file sementara dihapus sebelum keluar.
🔹 Menangani SIGHUP untuk Menyimpan Status Sebelum Terminal Ditutup:
trap ‘echo “Terminal ditutup, menyimpan status…”; save_status’ SIGHUP |
📌 Catatan:
Berguna untuk skrip yang berjalan dalam sesi SSH yang bisa tertutup secara tiba-tiba.
📌 5. Praktik Terbaik dalam Penyesuaian Sinyal
✅ Tangani Sinyal yang Sesuai dengan Kebutuhan Skrip
trap ‘echo “Proses dihentikan.”; exit’ SIGTERM |
✅ Gunakan trap – untuk Mengembalikan Perilaku Default Setelah Bagian Kritis
trap “” SIGINT |
✅ Pastikan trap Ditambahkan di Awal Skrip
trap ‘echo “Menangani sinyal sebelum menjalankan perintah lain.”‘ SIGINT |
✅ Gunakan Logging untuk Memonitor Sinyal yang Diterima
trap ‘echo “Sinyal diterima: $(date)” >> signal.log’ SIGINT SIGTERM |
📌 Kesimpulan
Menyesuaikan respons terhadap sinyal tertentu dalam Bash membantu meningkatkan kontrol eksekusi skrip, memastikan operasi penting dapat diselesaikan dengan aman. Dalam artikel ini, kita telah membahas:
✅ Cara menggunakan trap untuk menangani sinyal seperti SIGINT, SIGTERM, dan SIGHUP. ✅ Implementasi pembersihan file sementara dan penyimpanan status sebelum skrip keluar. ✅ Praktik terbaik untuk mengelola sinyal secara fleksibel tanpa mengganggu alur kerja skrip.
Artikel Selanjutnya: 🔄 File Descriptor Basics – Memahami dasar-dasar file descriptor (0 untuk input, 1 untuk output, 2 untuk error).
📚 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/