我最近将我的一个应用程序服务器升级到 CentOS 6(.2) 并准备在我可以解决以下问题时将其用于生产;每当我尝试通过 semanage 添加自定义 http 端口时,我不断收到以下错误消息:
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
Run Code Online (Sandbox Code Playgroud)
我试图运行的命令:
semanage port -a -t http_port_t -p tcp 27960
Run Code Online (Sandbox Code Playgroud)
当前内核:
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
Run Code Online (Sandbox Code Playgroud)
当前策略coreutils-python:
2.0.83-19.18.el6
Run Code Online (Sandbox Code Playgroud)
最后,当前的 selinux 设置:
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
Run Code Online (Sandbox Code Playgroud)
有人遇到过这个问题吗?如果是你是怎么解决的?
提前致谢
- 编辑 -
我检查了 /var/log/messages ,看起来 semanage 由于“内核:内存不足:杀死进程 1648(semanage)得分 769 或牺牲孩子”而失败。这很奇怪,因为我有一个几乎精确的克隆(在 linode.com 上),具有相同的 cpu/mem 规格并且命令运行良好。
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
Run Code Online (Sandbox Code Playgroud)
小智 7
在 Digital Ocean 上有一个非常相似的问题。某些 VM 主机(Digital Ocean、AWS、Rackspace)可能默认没有启用交换空间,这显然会导致semanage被杀死。
在我玩过的 CentOS 7 虚拟机上,semanage在执行命令之前需要 300 到 400 MB 的可用 RAM,才能成功运行而不会被杀死。
| 归档时间: |
|
| 查看次数: |
3157 次 |
| 最近记录: |