为什么“ps”输出不能解析我的进程的uid?

为什么“ps”输出不能解析我的进程的uid?

语境:在 ubuntu Linux 2.6.24-22-xen #1 SMP x86_64 GNU/Linux 上

我正在通过 init.d 脚本启动守护进程,但在“ps”输出中,它以数字形式显示守护进程的用户。例如

1000  17560  1  1 11:04 ?  00:00:09 /usr/lib/jvm/java-6-sun/bin/java -server 
        -jar /home/superduperadmin/server/daemon.jar

1000 是 /etc/passwd 中 superduperadmin 的映射。

这是为什么?是因为超级管理员太长 ?

答案1

是的,因为太长了……

来自ps(1) 手册页...

euser EUSER 有效用户名。这将是文本用户 ID,
              如果可以获得并且字段宽度允许,或者
              否则为十进制表示。n 选项可以是
              用于强制十进制表示。

答案2

用户名太长,无法显示 - 超过 8 个字符。

如果您想要一个ps包含更长名称的列表,则必须自己设置允许的最大长度:

$ ps -e -o "pid,user:16,command"

答案3

  1. 将用户“superduperadmin”重命名为“sda”。

    重命名主目录以匹配是可选的,但您确实需要编辑引用该用户名(或目录,如果您确实重命名了主目录)的任何脚本、配置文件等。

  2. 因为创建了需要输入太多内容的用户账户,所以给自己一个后脑勺重击一下,提醒自己不要再这样做了:)

相关内容