Package: parallel
Version: 20130922-1
Severity: normal

Dear Maintainer,

It seems that 'parallel' will (always?) automatically close all file
descriptors in the range 3 to 61 before starting the child process.

For example:

  $ exec 5</etc/passwd
  $ ls -l /dev/fd/
  total 0
  lrwx------ 1 benjamin benjamin 64 Feb 26 19:42 0 -> /dev/pts/2
  lrwx------ 1 benjamin benjamin 64 Feb 26 19:42 1 -> /dev/pts/2
  lrwx------ 1 benjamin benjamin 64 Feb 26 19:42 2 -> /dev/pts/2
  lr-x------ 1 benjamin benjamin 64 Feb 26 19:42 3 -> /proc/19896/fd
  lr-x------ 1 benjamin benjamin 64 Feb 26 19:42 5 -> /etc/passwd
  $ parallel ls -l <<</dev/fd/
  total 0
  lr-x------ 1 benjamin benjamin 64 Feb 26 19:42 0 -> pipe:[222723]
  lrwx------ 1 benjamin benjamin 64 Feb 26 19:42 1 -> /tmp/L6a2EkkAKD.par 
(deleted)
  lrwx------ 1 benjamin benjamin 64 Feb 26 19:42 2 -> /tmp/AEzA3WKNXP.par 
(deleted)
  lr-x------ 1 benjamin benjamin 64 Feb 26 19:42 3 -> /proc/19925/fd

This does not seem like a *useful* feature to me, and is in fact
making my life a bit difficult at the moment.  The only clue in the
source is the comment that "/dev/fd/62 and above are used by bash for
<(cmd)", but there's no explanation given as to why *those* file
descriptors should be treated differently from file descriptors opened
in other ways.  Moreover I don't see any mention of this in the
documentation.

Is there a reason for this behavior?

-- System Information:
Debian Release: 8.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.3.0-0.bpo.1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages parallel depends on:
ii  perl          5.20.2-3+deb8u3
ii  perl-modules  5.20.2-3+deb8u3

parallel recommends no packages.

parallel suggests no packages.

-- no debconf information

Reply via email to