systemd-logind.service的RemoveIPC参数影响
systemd-logind.service的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=yes 的RHEL7.2或Kylin-Server-20200711版本系统中会crash掉使用了Shared Memory Segment (SHM) or Semaphores (SEM)的应用程序
目前遇到过的数据库应用
- 在RHEL7.2上安装的Oracle Database应用程序异常crash
- 在Kylin-Server-10-SP1-Release-Build04-20200711-x86_64部署的DM DSC应用也出现异常crash
解决方案
关闭RemoveIPC特性
# 修改配置文件
sed -i 's/.*RemoveIPC.*/RemoveIPC=no/' /etc/systemd/logind.conf
# 检查确认配置
grep RemoveIPC /etc/systemd/logind.conf
RemoveIPC=no
# 重启服务或重启操作系统
systemctl daemon-reload
systemctl restart systemd-logind.service
# 结果验证确认
loginctl show-session | grep RemoveIPC
systemctl show systemd-logind | grep RemoveIPC
分类:
数据库(Oracle)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤