目前我正在尝试在 Linux 上创建第一个 PostgreSQL 9.5 集群部署 android 5.0.2,这似乎是一个共享内存错误。
FATAL: could not create shared memory segment: Function not implemented
Detail: Failed system call was shmget(key=1, size=40, 03600).
child process exited with exit code 1
initdb removing contents of data directory "/var/lib/postgresql/9.5/main"
Error: initdb failed
有人可以帮忙吗?
答案1
Android 不支持 POSIX 或 System V 共享内存。它有自己的非标准API,ashmem。
PostgreSQL 不支持 ashmem。为了使 PostgreSQL 服务器在 Android 上运行,我希望您需要使用支持 POSIX 或 System V 共享内存的自定义内核,或者向 PostgreSQL 添加对 ashmem 的支持。
有也是一个包装工具,android-shmem通过直接链接或 透明地使用 ashmem 模拟 System V 共享内存LD_PRELOAD
。你可以尝试一下。