The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Linux::FD::Pid - PID file descriptors

VERSION

version 0.007

SYNOPSIS

 use Linux::FD::Pid
 
 my $fh = Linux::FD::Pid->new($pid, @flags)

DESCRIPTION

This creates a pidfd filehandle that can be used to await the termination of a process. This provides an alternative to using SIGCHLD, and has the advantage that the file descriptor may be monitored by select, poll, and epoll.

METHODS

new($pid)

This creates a new filehandle object for the designated $pid. @flags is an optional list of flags, currently limited to 'non-blocking'.

send($signal)

This sends a signal to the process. The signal may be given as either a signal number (e.g. POSIX::SIGUSR1) or as a signal name (e.g. 'USR1').

wait($flags = WEXITED)

This waits for the process to end and returns its return status. It's only allowed to be child of the current process. It takes a flags argument like `waitpid`, the constants for this from the POSIX module can be used for this. If either the pidfd is non-blocking or WNOHANG is part of $flag and the process isn't then ready undef is returned instead.

get_handle($fd)

This duplicates a handle from another process. Permission to duplicate another process's file descriptor is governed by a ptrace access mode PTRACE_MODE_ATTACH_REALCREDS check.

AUTHOR

Leon Timmermans <leont@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2019 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.