合 RHEL中的RemoveIPC参数对数据库的影响
背景
在centos7.2,RHEL7.2或Kylin-Server-20200711版本系统内核上遇到一个奇怪的问题,用户登入后创建的文件,在用户logout后会被自动删除。
原因
在RHEL7.2及之后,systemd-logind 服务引入了一个新特性——当一个user 完全退出os之后,remove掉所有的IPC objects。
该特性由/etc/systemd/logind.conf参数文件中RemoveIPC选项来控制。详细请看man logind.conf(5)。当使用默认值(即 RemoveIPC=yes)的情况,当用户退出时,操作系统会remove掉该用户的shared memory segments and semaphores。
RemoveIPC控制用户完全注销时是否应删除属于该用户的System V和POSIX IPC对象,取值为布尔。
该参数在RHEL7.2及之后引入,默认为yes。
因为postgres 数据库使用了共享内存,所以当此参数设置为yes时,在某些场景下(操作系统用户退出登录时),会导致postgres 的共享内存异常,进而引起一系列其他异常问题。