Penguin

Differences between current version and revision by previous author of JobControl.

Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History

Newer page: version 7 Last edited on Thursday, August 16, 2007 2:54:13 pm by BenStaz
Older page: version 2 Last edited on Wednesday, December 6, 2006 7:37:24 pm by PerryLorier Revert
@@ -1,13 +1,51 @@
 In Unix you can run "jobs", suspend them, run them in the background, or bring them to the foreground. 
  
 The commands for this are: 
  
-;bg ''jobid '':Moves ''jobid '' into the background  
-;fg ''jobid '':Moves stopped, or backgrounded ''jobid '' into the foreground  
-; kill % ''jobid '':Send a signal to a job  
-;Control-Z :Suspend the currently running job  
-;jobs :List all current jobs
+!jobs  
+  
+This command will list all of the active jobs.  
+Some switches you may like to try include:  
+  
+* ''jobs -r '' will display running jobs only.  
+* ''jobs -s '' will display stopped jobs only.  
+  
+!bg  
+  
+''bg <JOB_SPEC>'' moves the job into the background.  
+  
+Note : if the job is currently in the foreground you will first have to suspend it using ''Ctrl-z '' ([SIGTSTP])  
+  
+Note : To start an application in the background append ''& '' to the end of your command.  
+  
+*ping www.gooogle.co.nz &  
+  
+!fg  
+  
+''fg <JOB_SPEC>'' moves the stopped or backgrounded job into the foreground.  
+  
+  
+! kill  
+  
+ ''kill %<JOB_SPEC> '' sends a signal to a job.  
+  
+Note : you can use use ''kill -l'' to list the possible signals you could send.  
+  
+!bg,fg and kill are not limited to jobids.  
+  
+We can also specify the start or part of the job command.  
+  
+For example : If a job command consisted of ''ping www .google.co.nz'', then these commands are valid.  
+  
+*kill %ping  
+*kill %?google  
+*fg ping  
+*bg ?goo  
+  
+These will work as long as you don't supply an ambiguous job_spec.  
+Notice that, only kill requires the ''%'' so that it knows we are providing it with a JOB_SPEC rather than a process id.  
+  
  
 !!How this works 
 Internally each command line (job) gets it's own ProcessGroup assigned to it by the shell when it creates the job using [setsid(2)]. While the command is running in the foreground it recieves any signals from the tty layer (such as [SIGTSTP], [SIGINT], [SIGQUIT], [SIGHUP] etc).