| line | true | false | branch | 
 
| 65 | 1 | 44 | exists $param{'dry_run'} && $param{'dry_run'} ? : | 
 
| 68 | 4 | 41 | if (exists $param{'uid'}) | 
 
| 71 | 2 | 2 | unless defined $uid and $uid =~ /^\d+$/x | 
 
| 76 | 4 | 39 | if (exists $param{'gid'}) | 
 
| 79 | 2 | 2 | unless defined $gid and $gid =~ /^\d+$/x | 
 
| 84 | 4 | 37 | if (exists $param{'cwd'}) | 
 
| 87 | 2 | 2 | unless defined $cwd and length $cwd | 
 
| 92 | 4 | 35 | if (exists $param{'umask'}) | 
 
| 95 | 2 | 2 | unless defined $umask and length $umask | 
 
| 100 | 3 | 34 | if (exists $param{'logger'}) | 
 
| 103 | 1 | 1 | unless defined $logger and ref $logger and $logger->can('info') | 
 
| 108 | 6 | 29 | if (exists $param{'log_callback'}) { } | 
 
| 111 | 2 | 4 | unless defined $log_callback and ref $log_callback eq 'CODE' | 
 
| 121 | 3 | 30 | if (exists $param{'on_fork_callback'}) | 
 
| 124 | 2 | 1 | unless defined $on_fork_callback and ref $on_fork_callback eq 'CODE' | 
 
| 131 | 2 | 29 | if (exists $param{'stdout'}) | 
 
| 134 | 2 | 0 | unless defined $stdout and length $stdout | 
 
| 139 | 2 | 27 | if (exists $param{'stderr'}) | 
 
| 142 | 2 | 0 | unless defined $stderr and length $stderr | 
 
| 147 | 4 | 23 | if (exists $param{'program_name'}) | 
 
| 150 | 2 | 2 | unless defined $program_name and length $program_name | 
 
| 174 | 2 | 7 | if $self->is_detached | 
 
| 177 | 5 | 2 | if (not $self->dry_run) { } | 
 
| 182 | 1 | 4 | unless defined $pid | 
 
| 185 | 2 | 2 | if ($pid == 0) { } | 
 
| 186 | 1 | 1 | unless POSIX::setsid() | 
 
| 200 | 1 | 1 | if (defined(my $cb = $self->on_fork_callback)) | 
 
| 220 | 0 | 1 | if (defined $self->stdout) { } | 
 
| 229 | 0 | 1 | if (defined $self->stderr) { } | 
 
| 237 | 0 | 1 | unless open STDIN, $stdin | 
 
| 238 | 0 | 1 | unless open STDOUT, $stdout | 
 
| 239 | 0 | 1 | unless open STDERR, $stderr | 
 
| 247 | 2 | 7 | if (defined(my $uid = $self->uid)) | 
 
| 249 | 1 | 1 | unless POSIX::setuid($uid) | 
 
| 253 | 2 | 6 | if (defined(my $gid = $self->gid)) | 
 
| 255 | 1 | 1 | unless POSIX::setgid($gid) | 
 
| 259 | 2 | 5 | if (defined(my $umask = $self->umask)) | 
 
| 261 | 1 | 1 | unless POSIX::umask($umask) | 
 
| 265 | 2 | 4 | if (defined(my $cwd = $self->cwd)) | 
 
| 267 | 1 | 1 | unless POSIX::chdir($cwd) | 
 
| 277 | 2 | 1 | if (defined(my $pid = $self->pid)) { } | 
 
| 281 | 1 | 1 | defined $signal ? : | 
 
| 293 | 1 | 0 | POSIX::kill($pid, 0) ? : | 
 
| 302 | 2 | 1 | if ($new_program_name ne $old_program_name) |