Linux Process: Difference between revisions
Jump to navigation
Jump to search
m (Admin moved page Linux to Linux Process) |
No edit summary |
||
| Line 1: | Line 1: | ||
== Processes states == | == Processes states == | ||
< | <D Uninterruptible sleep (usually IO) | ||
R Running or runnable (on run queue) | R Running or runnable (on run queue) | ||
S Interruptible sleep (waiting for an event to complete) | S Interruptible sleep (waiting for an event to complete) | ||
| Line 8: | Line 8: | ||
Z Defunct ("zombie") process, terminated but not reaped by its parent.</code> | Z Defunct ("zombie") process, terminated but not reaped by its parent.</code> | ||
< | << high-priority (not nice to other users) | ||
N low-priority (nice to other users) | N low-priority (nice to other users) | ||
L has pages locked into memory (for real-time and custom IO) | L has pages locked into memory (for real-time and custom IO) | ||
| Line 14: | Line 14: | ||
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) | l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) | ||
+ is in the foreground process group</code> | + is in the foreground process group</code> | ||
== How to know where a process was started and how it was started? == | |||
Most reliable way is to look at the <code>/proc, /proc/<pid>/ directory where it keeps information like:</code><ref>https://serverfault.com/questions/232762/linux-how-to-know-where-a-process-was-started-and-how-it-was-started</ref> | |||
# <code>cwd link to the current working directory</code> | |||
# <code>fd a dir with links to the open files (file descriptors)</code> | |||
# <code>cmdline read it to see what command line was used to start the process</code> | |||
# <code>environ the environment variables for that process</code> | |||
# <code>root a link to what the process considers it's root dir (it will be / unless chrooted)</code> | |||
<code>pstree -sp <PID></code> also give clearer relationship in tree view | |||
<code>systemctl status <PID></code> | |||
== References == | |||
<references /> | |||
Revision as of 17:48, 25 May 2023
Processes states
<D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
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.
<< 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
How to know where a process was started and how it was started?
Most reliable way is to look at the /proc, /proc/<pid>/ directory where it keeps information like:[1]
cwd link to the current working directoryfd a dir with links to the open files (file descriptors)cmdline read it to see what command line was used to start the processenviron the environment variables for that processroot a link to what the process considers it's root dir (it will be / unless chrooted)
pstree -sp <PID> also give clearer relationship in tree view
systemctl status <PID>