Rantai sinyal Java
Library Glasswall menggunakan penanganan sinyal untuk mencegah terjadinya crash, tetapi ini dapat mengganggu JVM saat Glasswall dijalankan dari Java. Agar ini berfungsi dengan benar, signal chaining perlu disiapkan untuk mencegah error di Glasswall menyebar ke JVM. Selama penyiapan, Anda akan memerlukan lokasi library libjsig.so. Contoh lokasi umum library ini:
/usr/lib/jvm/jre/lib/libjsig.so/usr/lib/jvm/jre/lib/amd64/libjsig.so/usr/lib/jvm/java/lib/libjsig.so
Ini akan bervariasi tergantung pada konfigurasi sistem Anda dan lokasi instalasi Java. Dalam contoh kami, path yang digunakan adalah /usr/lib/jvm/java/lib/libjsig.so.
Signal chaining tanpa penyiapan
Karena faktor lingkungan tertentu, library Glasswall mungkin dapat berfungsi tanpa masalah ketika library libjsig tidak disiapkan. Hal ini tidak dijamin, dan kami sangat menyarankan agar penyiapan dilakukan.
Release 16.3 dan sebelumnya
Untuk release 16.3 dan sebelumnya, Anda perlu menyiapkan variabel lingkungan LD_PRELOAD agar menunjuk ke lokasi library libjsig.so Anda. Informasi lebih lanjut dapat ditemukan di Signal Chaining.
Contoh LD_PRELOAD mungkin terlihat seperti ini: export LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so atau ENV LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so di file Docker Anda. Ini akan bergantung pada path sebenarnya ke library libjsig.so.
Release 16.4 dan yang lebih baru
Untuk release 16.4 dan yang lebih baru, wrapper Java untuk library Editor memiliki dependensi langsung pada library libjsig. Ini memerlukan sedikit penyiapan untuk memastikan bahwa linker dapat menemukan library tersebut dan menyelesaikan dependensi. Path akan berubah tergantung pada lokasi library. Beberapa contoh penyiapan didokumentasikan di bawah ini:
Contoh 1 - symbolic link ke library libjsig
Sebuah symbolic link dapat dibuat di /usr/lib atau /usr/lib64 tergantung pada sistem Anda untuk menunjuk ke library libjsig.
Sebagai contoh, jalankan perintah berikut di terminal dengan akses admin:
ln -s -T /usr/lib/jvm/java/lib/libjsig.so /usr/lib64/libjsig.so
ldconfig
ln akan membuat symbolic link dan ldconfig akan memperbarui cache library sehingga dependensi dapat diselesaikan.
Contoh 2 - menggunakan variabel lingkungan LD_LIBRARY_PATH
Variabel lingkungan LD_LIBRARY_PATH dapat diatur untuk menunjuk ke direktori yang berisi library libjsig.
Sebagai contoh, pengaturannya mungkin terlihat seperti ini export LD_LIBRARY_PATH=/usr/lib/jvm/java/lib atau ENV LD_LIBRARY_PATH=/usr/lib/jvm/java/lib di file Docker Anda.
Semua library di dalam direktori tersebut kemudian akan tersedia bagi linker.
Contoh 3 - konfigurasi baru di /etc/ld.so.conf.d/
Konfigurasi baru dapat dibuat di /etc/ld.so.conf.d yang akan berisi direktori library libjsig.
Sebagai contoh, jalankan perintah berikut di terminal dengan akses admin:
echo "/usr/lib/jvm/java/lib/" | tee -a /etc/ld.so.conf.d/jvm.conf
ldconfig
Perintah pertama membuat file konfigurasi dengan konten /usr/lib/jvm/java/lib/. Saat perintah ldconfig dipanggil, cache library akan diperbarui untuk menyertakan semua library di direktori yang ditentukan dalam file konfigurasi.