Назад | Перейти на главную страницу

CentOS - semanage - Ошибка добавления настраиваемого порта

Недавно я обновил один из своих серверов приложений до CentOS 6 (.2) и готовил его к производственному использованию, когда смогу решить следующую проблему; Всякий раз, когда я пытаюсь добавить собственный http-порт с помощью semanage, я получаю следующие сообщения об ошибках:

libsemanage.semanage_exec_prog: Child process /sbin/setfiles did not exit cleanly.
libsemanage.semanage_install_active: setfiles returned error code -1.
libsemanage.semanage_exec_prog: Child process /sbin/setfiles did not exit cleanly.
libsemanage.semanage_install_active: setfiles returned error code -1.
/usr/sbin/semanage: Could not commit semanage transaction

Команда, которую я пытаюсь запустить:

semanage port -a -t http_port_t -p tcp 27960

Текущее ядро:

 2.6.32-220.4.1.el6.x86_64 #1 SMP Tue Jan 24 02:13:44 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux

Текущая политика coreutils-python:

2.0.83-19.18.el6

И, наконец, текущие настройки selinux:

SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Кто-нибудь сталкивался с этой проблемой раньше? Если да, то как вы решили?

заранее спасибо

-- Редактировать --

Я проверил / var / log / messages, и похоже, что semanage не работает из-за «ядра: недостаточно памяти: убить процесс 1648 (semanage) с оценкой 769 или пожертвовать дочерним элементом». Это странно, потому что у меня есть почти точный клон (на linode.com) с такими же характеристиками процессора / памяти, и команда работает нормально.

free -t -m на сервере, где semanage не работает:

             total       used       free     shared    buffers     cached
Mem:           489         79        410          0          0         11
-/+ buffers/cache:         67        422
Swap:            0          0          0
Total:         489         79        410

Была очень похожая проблема на Digital Ocean. На некоторых хостах виртуальных машин (Digital Ocean, AWS, Rackspace) может НЕ быть включено пространство подкачки по умолчанию, что, по-видимому, вызывает semanage быть убитым.

На виртуальных машинах CentOS 7, с которыми я играл, semanage требовалось от 300 до 400 МБ свободной оперативной памяти перед выполнением команды, чтобы успешно работать и не быть убитым.

Обнаружил проблему, я забыл добавить диск подкачки, когда реализовал свое собственное ядро ​​по сравнению с предварительно подготовленными ядрами. Когда я снова добавил диск подкачки, команда выполнилась нормально.