I'm trying to get CPU usage of a process by,

ps -p 12990 -o comm=comm,pcpu

But that only print the command name (the process does exist), what's wrong with it?

1 Answer 1

ps -p 12990 -o comm,pcpu

will show the %CPU and COMMAND columns for the process with PID 12990.

-o comm=comm,pcpu is being interpreted by your ps as "output the comm column, but rename the header comm,pcpu".*

If you explicitly want the comm header to be "comm", you'll either need to use two -o flags:

ps -p 12990 -o comm=comm -o pcpu

or put the renamed comm column at the end of the -o argument

ps -p 12990 -o pcpu,comm=comm

*From the ps(1) man page:

The behavior of ps -o pid=X,comm=Y varies with personality; output may be one column named "X,comm=Y" or two columns named "X" and "Y". Use multiple -o options when in doubt.

  • 1
    This is the behavior specified by POSIX: “The default header can be overridden by appending an equals sign and the new text of the header. The rest of the characters in the argument shall be used as the header text.” Mar 8, 2013 at 0:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .