A part of the output from the ps -ef command is given below :

root         1     0  0  2012 ?        00:00:01 init [3]         
root         2     1  0  2012 ?        00:00:01 [migration/0]
root         3     1  0  2012 ?        00:00:00 [ksoftirqd/0]
root         4     1  0  2012 ?        00:00:00 [watchdog/0]
root         5     1  0  2012 ?        00:00:00 [events/0]
root         6     1  0  2012 ?        00:00:00 [khelper]
root         7     1  0  2012 ?        00:00:00 [kthread]
root         9     7  0  2012 ?        00:00:00 [xenwatch]
root        10     7  0  2012 ?        00:00:00 [xenbus]
root        18     7  0  2012 ?        00:00:01 [migration/1]
root        19     7  0  2012 ?        00:00:00 [ksoftirqd/1]

What does the "?" for all the rows in the TTY column mean? Also what does C and CMD column stand for?

4 Answers 4


You can check the manpage using man ps to find out what the columns mean. The Linux ps manpage, for example, gives:

c              C           integer value of the processor utilisation percentage.
                           (see %cpu)
tname          TTY         controlling tty (terminal). (alias tt, tty).
args           COMMAND     command with all its arguments as a string. May chop as
                           desired. Modifications to the arguments are not shown.
                           The output in this column may contain spaces.
                           (alias cmd, command)
cmd            CMD         see args. (alias args, command)

If the TTY is ? that means that the process is not associated with any user terminal.

  • 2
    man ps should work everywhere, not just Linux. Going to edit your answer to say what I think you must have meant; feel free to revert if I'm in err.
    – derobert
    Jan 22, 2013 at 17:05
  • None of the man pages I can find show the column header "C", but that header still appears in my ps -ef output Mar 7, 2021 at 7:27
  • @ShadSterling On Ubuntu 20.04 man ps - under STANDARD FORMAT SPECIFIERS
    – Karlson
    Mar 7, 2021 at 22:10
  • I guess man7 didn't show up in my search results before, but it is included at man7.org/linux/man-pages/man1/… (I'm not about to install Ubuntu just to read a man page) Mar 30, 2021 at 3:32

Since these are all kernel processes, they are not attached to a TTY (hence the ? value in the TTY field).



root 1 0 0 2012 ? 00:00:01 init [3]

Understanding the output:-

  1. The name of the user who have started the process.

  2. This column is PID i.e. process id. This act as the identification no of the process running in the memory.

  3. This column is PPID i.e. parent process id. This id is the pid of the process because of which these process has been started. All the Oracle processes don’t have a parent process and are thus adopted by init process, init process having pid as 1 so all the oracle processes will have ppid as 1.

  4. Processor utilization information in %.

  5. This is the start time of the process, for a long running process like in case of Oracle it will show only the date in process was started. If you want to know full year and time of a lone running process, fire the command with this option ps –efo user, pid, ppid, etime, args – etime will tell for last how many days process has been running.

  6. This is the terminal from which the process was started. As in case of grep pmon command was fired in terminal pts/2 thus it is showing that this process is started by terminal pts/2. All the oracle process are not started by any terminal.

  7. Total time for which the process has utilized CPU.

  8. The command and arguments executed.


Examples of Few headers


1   R   obiwan  792 779 22  183 20  10ec5f80    29    -    12:52:24 pts/2   0:00    ps -elf


ColumnHeader    Contents
%CPU            How much of the CPU the process is using
%MEM            How much memory the process is using
ADDR            Memory address of the process
C or CP         CPU usage and scheduling information
COMMAND*        Name of the process, including arguments, if any
NI              nice value
F               Flags
PID             Process ID number
PPID            ID number of the process's parent process
PRI             Priority of the process
RSS             Real memory usage
S or STAT       Process status code
START or STIME  Time when the process started
SZ              Virtual memory usage
TIME            Total CPU usage
TT or TTY       Terminal associated with the process
UID or USER     Username of the process's owner
WCHAN           Memory address of the event the process is waiting for

Credits : Indiana University Knowledge Base

  • 2
    What does the "?" for all the rows in the TTY column mean? See also the existing answer to ensure that you're adding to the existing knowledge.
    – Jeff Schaller
    Feb 5, 2018 at 17:12
  • Does the licence on this material allow you to copy and paste it on Stack Exchange? Feb 5, 2018 at 21:46

You must log in to answer this question.

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