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.