Home > database >  What it means that in the c process state
What it means that in the c process state

Time:11-29

I make the test.cpp and compile this.

int main() {
    while(1);
}

g test.cpp

And ps -aux | grep a.out.

The process state a.out is R .

Yes. Of course, the process infinitely runs.

But, I don't understand the

In ps manual, is in the foreground process group.

I don't know what it means that a.out is in the foreground process group.

PROCESS STATE CODES         
       Here are the different values that the s, stat and state output
       specifiers (header "STAT" or "S") will display to describe the
       state of a process:

               D    uninterruptible sleep (usually IO)
               I    Idle kernel thread
               R    running or runnable (on run queue)
               S    interruptible sleep (waiting for an event to
                    complete)
               T    stopped by job control signal
               t    stopped by debugger during the tracing
               W    paging (not valid since the 2.6.xx kernel)
               X    dead (should never be seen)
               Z    defunct ("zombie") process, terminated but not
                    reaped by its parent

       For BSD formats and when the stat keyword is used, additional
       characters may be displayed:

               <    high-priority (not nice to other users)
               N    low-priority (nice to other users)
               L    has pages locked into memory (for real-time and
                    custom IO)
               s    is a session leader
               l    is multi-threaded (using CLONE_THREAD, like NPTL
                    pthreads do)
                    is in the foreground process group

CodePudding user response:

It basically means that the process executes within a terminal session, occupying it, with a direct user access to it. A background process runs without direct user interactions. Mostly used when you want to continue using the terminal session but also need to run a time demanding computation.

You can change this state of your program by supplying the & sign after the launch command:

./a.out &

And then you can bring your process back by using the fg command or by the process id you will get after putting the process in the background.

  • Related