用root启动进程之后,无法再用其他普通用户启动该进程

环境:

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 ~/*

<think>好的,我现在需要回答用户关于如何查看Linuxroot用户启动进程的问题。首先,我得回忆一下常用的进程查看命令,比如ps和grep的组合。用户可能已经知道一些基础命令,但具体到root用户进程可能需要过滤用户字段。 我记得ps aux可以显示所有进程,其中包含用户信息。所以应该用ps -u root来过滤用户root进程。不过,用户可能希望更详细的输出,或者结合其他选项。比如aux选项通常用来显示所有进程的详细信息,然后通过grep来筛选USER列为root的行。但需要注意,直接使用ps aux | grep root可能会包含其他含有root关键字的进程,比如路径或参数中有root的情况,这样结果会不准确。 所以正确的做法应该是使用ps -U root或者ps -u root,这两个选项是专门按用户来筛选进程的。-U是按真实用户ID(RUID)过滤,而-u是按有效用户ID(EUID)过滤。大多数情况下,这两者是一致的,但为了全面性,可能需要同时考虑。 另外,用户可能还提到了top命令,可以实时查看进程,但需要交互操作。在需要脚本或快速查看时,ps命令更合适。同时,引用中的资料提到了ps aux和ps -lA,但用户需要的是特定用户进程,所以需要结合用户过滤。 还需要注意权限问题,普通用户可能无法查看root用户的所有进程,可能需要sudo来提升权限。例如,sudo ps -U root会更准确,但用户可能需要输入密码。如果用户希望不交互,可能需要配置sudoers文件,但这可能超出当前问题的范围。 总结下来,应该推荐使用ps -U root或者ps -u root,并解释两者的区别。另外,结合grep来确保准确性,但需要指出潜在的问题。最后,提到top命令作为实时查看的替代方案,并提醒权限问题。</think>在Linux系统中查看root用户启动进程,可以通过以下命令实现: ### 方法1:使用`ps`命令筛选用户 执行命令: ```bash ps -U root -u root ``` - **参数说明**: - `-U root`:按真实用户(RUID)过滤,显示属于root用户进程 - `-u root`:按有效用户(EUID)过滤,显示以root权限运行的进程 - **输出示例**: ```bash PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd ... ``` ### 方法2:结合`aux`参数和`grep`筛选 执行命令: ```bash ps aux | grep '^root' ``` - **命令解析**: - `ps aux`:显示所有用户进程详细信息[^1] - `grep '^root'`:筛选以root开头的行(即USER字段为root进程) - **注意**:直接使用`grep root`可能误匹配含"root"的路径或参数,建议优先使用方法1 ### 方法3:使用`top`实时查看 执行命令: ```bash top -U root ``` - **特点**:实时动态显示进程信息,按`q`退出 - **参数**:`-U`指定用户名,仅显示该用户进程 ### 权限说明 普通用户执行上述命令时: 1. 可能无法查看root用户的所有进程细节 2. 建议使用`sudo`提升权限: ```bash sudo ps -U root ``` 需要输入当前用户密码[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值