如何确定Ubuntu中的守护进程的用户和组?


Answers:


38

只需ps在运行时使用:

oliver@ubuntuServer:~$ ps aux|grep nginx|grep -v grep
root     17119  0.0  0.1  57492  1156 ?        Ss   14:22   0:00 nginx: master process /usr/sbin/nginx
www-data 17120  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process
www-data 17121  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process
www-data 17122  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process
www-data 17123  0.0  0.1  57804  1572 ?        S    14:22   0:00 nginx: worker process

如您在第一栏中所看到的,初始的nginx主进程是使用root用户帐户启动的。此过程将在www-data用户帐户下生成工作程序。这将是您所关心的。

如果nginx未运行,则可以像这样从配置文件中提取信息:

oliver@ubuntuServer:~$ grep user /etc/nginx/nginx.conf
user www-data;

因此,如果要在这种情况下重新启动Nginx,需要与root用户或www-data用户一起执行吗?有时我会得到open() "/run/nginx.pid" failed (13: Permission denied)...
奥古斯丁·里丁格

@AugustinRiedinger您可能应该使用sudo service nginx restart
Der Hochstapler '16

17

要回答正在运行的过程中问题的“和组”部分,也可以使用supgrp(补充组的名称)格式说明符。尝试:

 ps -eo pid,comm,euser,supgrp | grep nginx

1

ps -eo user,comm | grep nginx会给您运行的用户nginx

tophtop也可以用来查找流程的用户。

那么您可以找到用户使用的组: groups USERNAME


如何删除userroot nginx www-数据nginx
www-

为什么要删除用户www-data?与该用户一起运行Web服务器守护程序是预期结果。好的,您可以使用userdel命令将其删除。
Mengdi Gao 2012年

1
但是请注意,由于各种原因,正在运行的进程的有效和补充组可能与用户帐户的这些组不匹配。给定CAP_SETGID能力(根通常具有的能力),流程可以修改有效的GID和补充组列表。因此,ps解决方案更好。
WGH

1

我总是做'ps aux | grep什么”,但我不是管理员。如果以上正确,并且“ ps”告诉您您需要了解的内容,请执行此操作。然后,您必须执行“ kill ###”而不是“ kill name”(###的意思是例如上面的17119)。假设您想杀死它。顺便说一句,它是守护进程,而不是守护进程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.