13,420
edits
Changes
→Managing Processes
[[Image:process-diagram-1.png|thumb|right|300px|(Image licensed under [https://creativecommons.org/licenses/by-sa/3.0/ cc])]]
All programs that are executing running on a Unix/Linux computer system are referred to as '''processes''':
* Each process has an '''owner'''
* Each process has a unique ID ('''PID''') * Processes in UNIX can run in the '''foreground''' or '''background'''
* Programs / Commands can be run in the '''background''' by placing an '''ampersand''' '''&''' after the command<br>(eg. '''program-name &''')
UNIX processes are '''hierarchical''':
* The process structure has a '''root''', '''parents''', and '''children''', etc.
* Creation of a new process is called '''forking''' or '''spawning'''
* The Parent process can spawn a child process, and children can in turn spawn their own childrenchild processes
* Processes keep their '''PID''' for their entire life
* Usually a parent '''sleeps ''' when a child is executing<br>(the exception is when the child process is executing running in the background)
Users can learn to manage processes to become more productive while working in the Unix / Linux Command-line environment.
Below are common Linux commands / keyboard shortcuts to manage processes:
<table cellpadding="5" width="80%"><tr valign="top"><th width="25%" style="border-bottom: 1px solid black;text-align:left;">Linux Command / Key Combination</th><th style="border-bottom: 1px solid black;text-align:left;">Purpose</th></tr><tr valign="top"><td>'''ps'''</td><td>The '''ps''' (''process status'') command displays snapshot information about processes. By default, the ps command displays information only about the current terminal ('''ps -l''' provides a detailed listing, '''ps -U''' username shows all)<br><br>''Examples: ''<span style="font-family:courier;font-weight:bold">ps , ps -l , ps -ef , ps -u , ps aux</span><br></td></tr><tr valign="top"><td>'''top'''</td><td>The '''top''' command provides a continuous update including resource usagerealtime status of running processes.<br>'''NOTE:''' You can press '''ctrl-c''' to exit<br></td></tr><tr valign="top"><td>'''fg'''</td><td>The '''fg''' (foreground) command moves a background job from the current environment into the foreground. The fg command issued without arguments will place the most recent process in the background to the '''foreground'''. ''Example: ''<span style="font-family:courier;font-weight:bold">fg %job-number</span></td></tr><tr valign="top"><td><span style="font-family:courier;">'''<ctrl><c>'''</span></td><td>'''Terminates''' a process running in the foreground</td></tr><tr valign="top"><td><span style="font-family:courier;">'''<ctrl><z>'''</span></td><td>Sends a process running in the foreground into the '''background'''.</td></tr><tr valign="top"><td>'''bg'''</td><td>The '''bg''' utility shall resume '''resumes''' suspended jobs from the current environment. The bg command issued without arguments will run the most recent process that was placed into the background.<br>''Example: ''<span style="font-family:courier;font-weight:bold">bg %job-number</span></td></tr><tr valign="top"><td>'''jobs'''</td><td>The '''jobs''' utility shall display displays the '''status ''' of jobs that were started in the current shell environment<br>''Examples:<br>''<span style="font-family:courier;">jobs<br>[1]+ Stopped vim a <span style="font-size:8pt;"> <-- Job #1 (+ means most recent process sent to background)</span><br>[2] Running sleep 200 & <span style="font-size:8pt;"> <-- Job #2</span><br>[3] Running sleep 300 & <span style="font-size:8pt;"> <-- Job #3</span><br>[4]- Running sleep 400 &<span style="font-size:8pt;"> <-- Job #4 (- means second recent process sent to background)</span><br><br></span></td></tr><tr valign="top"><td>'''kill'''</td><td>The kill command sends the specified signal to the specified processes or process groups. If no signal is specified, the '''TERM ''' signal is sent. The default action for this signal is to terminate the process.<br>''Examples:''<br><span style="font-family:courier;font-weight:bold;">kill PID , kill -9 PID , kill %job-number , <br>kill -9 %job-number</span></td></tr></table>
===Aliases / Command History===