用root启动进程之后,无法再用其他普通用户启动该进程
2017-08-31 17:05
344 查看
环境:
CentOS release 6.8 (Final)
Linux 2.6.32-642.6.2.el6.x86_64 #1 SMP
问题描述:
今天同事碰到一个问题过来问我,说他不小心用root起了进程之后,再也无法用原本的普通用户把进程拉起来。
日志报错显示SemCreate Error: File exists
问题排查:
1,追踪代码,产生这个报错的原因是此进程需要创建信号量集,但是semget失败,errno == EEXIST
2,EEXIST(信号量集已经存在,无法创建)
3,用ipcs命令查看,确实是已经存在,并且owner为root,因为key是固定的,那么用普通用户再拉进程的时候就操作不了root用户创建的信号量集。
问题修复:
1,使用命令ipcrm清除掉已经存在的信号量集
2,排查代码,发现代码缺陷,程序退出时没有调用semctl(semid, 0, IPC_RMID, 0);
总结:
操作的时候又忘了截图,下次要记得。
之前也碰到过root拉起进程之后无法再用普通用户拉起来进程的问题,
不过那次是因为文件属组为root导致普通用户无法打开,例如日志文件等,
假设用户名为test
修复方法为chown -R test:test ~/*
CentOS release 6.8 (Final)
Linux 2.6.32-642.6.2.el6.x86_64 #1 SMP
问题描述:
今天同事碰到一个问题过来问我,说他不小心用root起了进程之后,再也无法用原本的普通用户把进程拉起来。
日志报错显示SemCreate Error: File exists
问题排查:
1,追踪代码,产生这个报错的原因是此进程需要创建信号量集,但是semget失败,errno == EEXIST
2,EEXIST(信号量集已经存在,无法创建)
3,用ipcs命令查看,确实是已经存在,并且owner为root,因为key是固定的,那么用普通用户再拉进程的时候就操作不了root用户创建的信号量集。
问题修复:
1,使用命令ipcrm清除掉已经存在的信号量集
2,排查代码,发现代码缺陷,程序退出时没有调用semctl(semid, 0, IPC_RMID, 0);
总结:
操作的时候又忘了截图,下次要记得。
之前也碰到过root拉起进程之后无法再用普通用户拉起来进程的问题,
不过那次是因为文件属组为root导致普通用户无法打开,例如日志文件等,
假设用户名为test
修复方法为chown -R test:test ~/*
相关文章推荐
- centos6.X系统非root用户启动的程序无法创建超过1024个进程的问题
- mysql用root用户启动后其他用户无法启动问题
- centos6.X系统非root用户启动的程序无法创建超过1024个进程的问题
- mysql用root用户启动后其他用户无法启动不问题
- 普通用户切换到root用户无法启动环境变量
- Ubuntu 普通用户无法启动Google chrome
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- 使用YUM安装并启动MySQL服务后,MySQL进程会自动在进程日志中打印root用户的初始密码
- 无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”。
- 无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。
- ssh无法root,但能普通用户
- 普通用户无法su到root用户
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例,该连接将关闭的解决办法
- 由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例解决办法
- 普通用户启动WebLogic,应用程序无法从FTP服务器目录中获取图片问题的解决方案。
- Ubuntu 普通用户无法启动Google chrome
- 如何解决由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。