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>