Cent OS 7 libpng16.so.16 не может открыть общий объектный файл

Решение от @lesmana с использованием trap является традиционным подходом, но, как уже отмечалось, не подходит для случая kill -9.

Существует альтернативный вариант: настроить процесс для наблюдения за основным процессом и выполнить уничтожение при завершении основного процесса. Простой способ выполнить мониторинг — настроить канал к монитору, когда основной процесс завершится, тогда ядро ​​закроет канал,которые может обнаружить монитор.

Вот пример

#!/bin/bash
# show monitoring main process - Icarus Sparry
# linkedin@icarus.freeuk.com

# Handler function. Reads from stdin. If it doesn't read the word clean
# then send SIGINT to the process group.
handler(){
    read
    [ "$REPLY" = "clean" ] || kill -INT -$$
}

# invoke handler as a coprocess. 
coproc handler

# some work in the background, wait for 20 seconds and print a message
{ sleep 20 ; echo bye 20 ; } &

# some work in the foreground
sleep 5 ; echo bye 5

# At this point tell the coprocess it was a clean end, so don't
# terminate the background
echo clean >&"${COPROC[1]}"

Через 5 секунд выводится bye 5, а еще через 15 секунд — bye 20. уничтожение процесса приведет к тому, что сопроцесс отключит фоновый сон.

Если желательно, чтобы фоновая обработка была прекращена после завершения работы переднего плана, опустите окончательный echo clean >&"${COPROC[1]}"и, возможно, удалите [ "$REPLY" = "clean" ] ||из обработчика, оставив чтение и уничтожение.

1
07.04.2021, 23:32
2 ответа

CentOS 7 не включает эту библиотеку.

Содержит:

libpng-1.5.13-8.el7.x86_64
lrwxrwxrwx    1 root     root        19 Oct 13 15:52 /usr/lib64/libpng15.so.15 -> libpng15.so.15.13.0
-rwxr-xr-x    1 root     root    179328 Oct 13 15:52 /usr/lib64/libpng15.so.15.13.0
drwxr-xr-x    2 root     root         0 Oct 13 15:52 /usr/share/doc/libpng-1.5.13
-rw-r--r--    1 root     root    192660 Sep 27  2012 /usr/share/doc/libpng-1.5.13/CHANGES
-rw-r--r--    1 root     root      4205 Sep 27  2012 /usr/share/doc/libpng-1.5.13/LICENSE
-rw-r--r--    1 root     root     10418 Sep 27  2012 /usr/share/doc/libpng-1.5.13/README
-rw-r--r--    1 root     root      1120 Aug 27  2010 /usr/share/doc/libpng-1.5.13/TODO
-rw-r--r--    1 root     root     31690 Sep 27  2012 /usr/share/doc/libpng-1.5.13/example.c
-rw-r--r--    1 root     root    195566 Sep 27  2012 /usr/share/doc/libpng-1.5.13/libpng-manual.txt
-rw-r--r--    1 root     root      1146 Oct 13 15:52 /usr/share/man/man5/png.5.gz

XPDFReader не похож на приложение, включенное в официальные репозитории RHEL/CentOS. Я не уверен, что это будет работать в CentOS, даже если вы установите эту версию libpng, что вы абсолютно можете сделать.

Официальные версии Google Chrome и Mozilla Firefox работают в CentOS и могут открывать файлы PDF.

1
28.04.2021, 22:53

libpng16 доступен в виде пакета из коммерческого репозитория GetPageSpeed, поэтому существует чистый (, но не бесплатный )способ его установки:

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm
sudo yum -y install libpng16
0
28.04.2021, 22:53

Теги

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