Lumaktaw sa pangunahing nilalaman

Java signal chaining

Ginagamit ng Glasswall library ang signal handling upang maiwasan ang pag-crash, ngunit maaari itong makaabala sa JVM kapag pinapatakbo ang Glasswall mula sa Java. Para gumana ito nang tama, kailangang i-set up ang signal chaining upang maiwasang kumalat ang mga error sa Glasswall papunta sa JVM. Sa panahon ng set up, kakailanganin mo ang lokasyon ng libjsig.so library. Mga halimbawa kung saan ito karaniwang makikita:

  • /usr/lib/jvm/jre/lib/libjsig.so
  • /usr/lib/jvm/jre/lib/amd64/libjsig.so
  • /usr/lib/jvm/java/lib/libjsig.so

Mag-iiba ito depende sa configuration ng iyong system at kung saan naka-install ang Java. Sa aming mga halimbawa, ang path na ginamit ay /usr/lib/jvm/java/lib/libjsig.so.

Signal chaining nang walang set up

Dahil sa ilang environmental factor, maaaring gumana ang Glasswall library nang walang isyu kahit hindi naka-set up ang libjsig library. Hindi ito garantisado, at mariin naming inirerekomenda na isagawa ang set up.

Release 16.3 at mas maaga

Para sa mga release 16.3 at mas maaga, kakailanganin mong i-set up ang LD_PRELOAD environment variable upang tumuro sa lokasyon ng iyong libjsig.so library. Higit pang impormasyon ay makikita sa Signal Chaining.

Ang isang halimbawa ng LD_PRELOAD ay maaaring magmukhang ganito: export LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so o ENV LD_PRELOAD=/usr/lib/jvm/java/lib/libjsig.so sa iyong Docker file. Magdedepende ito sa aktuwal na path papunta sa libjsig.so library.

Release 16.4 at mas bago

Para sa mga release 16.4 at mas bago, ang Java wrapper para sa Editor library ay may direktang dependency sa libjsig library. Nangangailangan ito ng kaunting set up upang matiyak na mahahanap ng linker ang library at mareresolba ang dependency. Magbabago ang mga path depende sa lokasyon ng library. Ilang halimbawa ng set up ang nakadokumento sa ibaba:

Maaaring gumawa ng symbolic link alinman sa /usr/lib o /usr/lib64 depende sa iyong system upang tumuro sa libjsig library.

Halimbawa, patakbuhin ang mga sumusunod na command sa isang terminal na may admin access:

ln -s -T /usr/lib/jvm/java/lib/libjsig.so /usr/lib64/libjsig.so
ldconfig

Ang ln ay gagawa ng symbolic link at ang ldconfig ay mag-a-update ng library cache upang ma-resolve ang dependency.

Halimbawa 2 - paggamit ng LD_LIBRARY_PATH environment variable

Maaaring i-set up ang LD_LIBRARY_PATH environment variable upang tumuro sa directory na naglalaman ng libjsig library.

Halimbawa, maaaring ganito ang set up: export LD_LIBRARY_PATH=/usr/lib/jvm/java/lib o ENV LD_LIBRARY_PATH=/usr/lib/jvm/java/lib sa iyong Docker file.

Ang lahat ng library sa loob ng directory ay magiging available sa linker.

Halimbawa 3 - bagong configuration sa /etc/ld.so.conf.d/

Maaaring gumawa ng bagong configuration sa /etc/ld.so.conf.d na maglalaman ng directory ng libjsig library.

Halimbawa, patakbuhin ang mga sumusunod na command sa isang terminal na may admin access:

echo "/usr/lib/jvm/java/lib/" | tee -a /etc/ld.so.conf.d/jvm.conf
ldconfig

Ang unang command ay gumagawa ng configuration file na may nilalamang /usr/lib/jvm/java/lib/. Kapag tinawag ang ldconfig command, maa-update ang library cache upang isama ang lahat ng library sa directory na tinukoy sa config file.