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

上下文 :在Ubuntu的Linux 2.6.24-22-xen#1 SMP x86_64 GNU / Linux上

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

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。

为什么是这样 ? 是否因为superduperadmin太长?

是的,这是因为它太长了…

从PS(1)手册页 …

 euser EUSER有效的用户名。 这将是文本用户ID, 
              如果它可以获得和领域宽度许可,或 
              否则为十进制表示。  n选项可以 
              用于强制十进制表示。 

用户名显示太长 – 超过8个字符。

如果你想要一个更长名字的ps列表,你必须自己设置允许的最大长度:

 $ ps -e -o "pid,user:16,command" 
  1. 将用户“superduperadmin”重命名为“sda”。

    重命名主目录匹配是可选的,但是你需要编辑引用该用户名的任何脚本,configuration文件等(或者如果你重命名主目录,则是dir)。

  2. 给自己创造一个用户帐户,需要太多的打字提醒自己不要再这样做的脑袋后面的重击:)