Заменить с одного символа до, но не включая другой символ

Всем, кто пытается запустить приложение Java из службы systemd и получает ту же ошибку, связанную с библиотекой libjli.so, читайте дальше.

В настоящее время для Fedora существует открытая ошибка:

Ошибка 1358476 — SELinux не позволяет systemd выполнять службы на основе Java -

В результате SELinux молча ограничивает доступ к этой библиотеке. Поскольку сообщения об отказе в AVC нет, вы не можете исправить его с помощью контекста или изменения политики.

Я обнаружил, что добавление файла /etc/ld.so.conf.d/, содержащего папку вашего libjli.soфайла, является одним из обходных путей:

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-5.b14.fc26.x86_64/jre/lib/amd64/jli/

А потом бегом

ldconfig

Но это довольно грязно...

Лучше использовать /bin/bash -cдля запуска процесса Java в вашем сервисном файле:

ExecStart=/bin/bash -c "/usr/bin/java -Xmx1024m -jar myApp.jar NONINTERACTIVE"

Пока проблема не будет устранена....

0
30.01.2020, 05:29
2 ответа

Также может работать

sed -r 's/vlan/\x01/;s/(([0-9]{1,3}[.]?){4})\/.*\x01/\1...vlan/' file

Используйте заполнитель для первого vlan, чтобы обойти жадность sed. И да, есть небольшая уязвимость от "необязательной" точки в IP. При необходимости используйте более сложное регулярное выражение.

0
28.04.2021, 23:25
sed 's/\(.*[0-9]\)\/.* \(vlan.*\)/\1REPLACEMENT\2/' file

Соответствует первому вхождению /по предшествующему номеру и первому вхождению vlanпо пробелу.

0
28.04.2021, 23:25

Теги

Похожие вопросы