“geoip2 модуль требует maxminddb библиотеки”, но библиотека установлена

Существует несколько способов отключения эффекта Ctrl + C :

  • Измените настройку терминала, чтобы она не генерировала сигнал.
  • Заблокируйте сигнал, чтобы он был сохранен на более позднюю доставку, когда сигнал становится разблокированным.
  • Игнорируйте сигнал или установите обработчик для него.
  • Запустите подпроцессы в фоновой группе процессов.

Так как вы хотите обнаружить, что CTRL + C был нажат, игнорируя сигнал выключен. Вы можете изменить настройки терминала, но вам нужно будет написать пользовательский код обработки ключа. Оболочки не обеспечивают доступ к блокировку сигналов.

Вы можете, однако, вы можете автоматически изолировать подпроцессы от приема сигнала, запустив их в отдельной группе процесса. Интерактивные оболочки запускают фоновые команды в отдельной группе процессов по умолчанию, но не интерактивные оболочки выполняют их в той же группе процессов, и все процессы в группе процесса переднего плана получают сигнал от терминальных событий. Чтобы сообщить оболочку на запускать фоновые задания в отдельной группе процессов, запустить SET -M . Бег Setsid Ping ... является еще одним способом форсирования Ping для запуска в отдельной группе процесса.

set -m
interrupted=
trap 'echo Interrupted, but ping may still be running' INT
set -m
ping … &
while wait; [ $? -ge 128 ]; do echo "Waiting for background jobs"; done
echo ping has finished

Если вы хотите Ctrl + Z , чтобы приостановить фоновую группу процессов, вам нужно будет распространять сигнал от оболочки.

Контролирующие сигналы тонко являются немного растягивающейся для скрипта оболочки, а раковины, отличные от att ksh, как правило, имеют немного багги, когда вы достигаете угловых случаев, поэтому рассмотрите язык, который дает вам больше контроля, такого как Perl, Python или рубиновый

1
06.10.2014, 14:53
2 ответа

Всем, у кого возникла эта проблема, вот решение:

  1. git clone --рекурсивныйhttps://github.com/maxmind/libmaxminddb
  2. компакт-диск libmaxminddb
  3. ./начальная загрузка
  4. ./настроить
  5. делать
  6. выполнить установку

Я заметил, что изначально после клонирования не было исполняемого файла configure, но после запуска./bootstrap он был создан . Затем я запускаю./configure, make, make install, и тут я заметил, что в папке/usr/local/includemaxminddb _были созданы config.h и maxminddb.h .

Затем я запускаю свой установочный скрипт nginx, и ошибок больше не было.

0
28.01.2020, 01:53

Мне не хватало версии maxminddb для разработки, поэтому я использовал:

yum install libmaxminddb-devel
2
28.01.2020, 01:53

Теги

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