.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Zoidberg::Contractor 3" .TH Zoidberg::Contractor 3 "2008-01-12" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Zoidberg::Contractor \- Module to manage jobs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Zoidberg::Contractor; \& my $c = Zoidberg::Contractor->new(); .Ve .PP .Vb 1 \& $c->shell_list( [qw(cat ./log)], '|', [qw(grep -i error)] ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Zoidberg inherits from this module, it manages jobs. .PP It uses Zoidberg::StringParser. .PP Also it defines Zoidberg::Job and subclasses. .PP \&\s-1FIXME\s0 lots of documentation .SH "METHODS" .IX Header "METHODS" .IP "\fInew()\fR" 4 .IX Item "new()" Simple constructor, calls \f(CW\*(C`shell_init()\*(C'\fR. .IP "\fIshell_init()\fR" 4 .IX Item "shell_init()" Initialises things like hashes with signal names and sets terminal control. Should be called before usage when the constructor is overloaded. .IP "\fIround_up()\fR" 4 .IX Item "round_up()" Recursively calls the \f(CW\*(C`round_up()\*(C'\fR function of all current jobs. .IP "shell_list(@blocks)" 4 .IX Item "shell_list(@blocks)" Executes a list of jobs and logic operators. .IP "shell_job($block)" 4 .IX Item "shell_job($block)" Executes a single job. .IP "\fIreap_jobs()\fR" 4 .IX Item "reap_jobs()" Checks for jobs that are finished and removes them from the job list. .IP "job_by_id($id)" 4 .IX Item "job_by_id($id)" Returns a job object based on the (numeric) id. .Sp (Note that the job list is un\-ordered, so the id and the index are not usually identical.) .IP "job_by_spec($string)" 4 .IX Item "job_by_spec($string)" Returns a job object based on a string. The following formats are supported: .RS 4 .IP "%\fIinteger\fR" 4 .IX Item "%integer" Job with id \fIinteger\fR .IP "%+" 4 Current job .IP "%\-" 4 Previous job .IP "%?\fIstring\fR" 4 .IX Item "%?string" Last job matching \fIstring\fR .IP "%\fIstring\fR" 4 .IX Item "%string" Last job starting with \fIstring\fR .RE .RS 4 .RE .IP "sig_by_spec($string)" 4 .IX Item "sig_by_spec($string)" Returns the signal number for a named signal or undef if no such signal exists. .SH "JOBS" .IX Header "JOBS" Jobs are objects of the class \f(CW\*(C`Zoidberg::Job\*(C'\fR or a subclass of this class. .PP This object \s-1AUTOLOADS\s0 methods to process signals. For example: .PP .Vb 2 \& $job->TERM(); # is identical to \& $job->kill('TERM'); .Ve .Sh "Methods" .IX Subsection "Methods" The job obbjects have the following methods: .IP "\fInew()\fR" 4 .IX Item "new()" Simple constructor. .IP "\fIexec()\fR" 4 .IX Item "exec()" Execute the job. .IP "\fIround_up()\fR" 4 .IX Item "round_up()" Recursively kill the job, ends all child processes forcefully. .IP "\fIfg()\fR" 4 .IX Item "fg()" Take terminal control and run this job in the foreground. .IP "\fIbg()\fR" 4 .IX Item "bg()" Run this job in the background. .ie n .IP "kill($signal, $wipe_list)" 4 .el .IP "kill($signal, \f(CW$wipe_list\fR)" 4 .IX Item "kill($signal, $wipe_list)" Sends \f(CW$signal\fR (numeric or named) to all child processes belonging to this job; \&\f(CW$signal\fR defaults to \s-1SIGTERM\s0. .Sp If the boolean \f(CW$wipe_list\fR is set all jobs pending in the same logic list are removed. .IP "env(\e%env)" 4 .IX Item "env(%env)" Set local environment for the current job. Can't be set after the job has started. .IP "fd(\e@redir)" 4 .IX Item "fd(@redir)" Set redirections for the current job. Can't be set after the job has started. .SH "AUTHORS" .IX Header "AUTHORS" Jaap Karssenberg, .PP Raoul Zwart, .PP Copyright 2003 by Jaap Karssenberg .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" zoiddevel(1), Zoidberg, Zoidberg::StringParser