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


Linux::FD::Pid - PID file descriptors


version 0.007


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


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.



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


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.


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.


Leon Timmermans <>


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.