Documentation update for the above change.
On Sun, May 19, 2024 at 11:18 AM James Youngman <j...@gnu.org> wrote: > This patch addresses the POSIX compliance aspect explained by Geoff > Clare. A test is included. > > >
From 9fed05088f5bfe5d7d7b5e92ae301517e84760f8 Mon Sep 17 00:00:00 2001 From: James Youngman <ja...@youngman.org> Date: Sun, 19 May 2024 11:27:46 +0100 Subject: [PATCH 2/2] [doc] Mention the changes to xargs -P To: findutils-patc...@gnu.org * doc/find.texi: explain how xargs -P affects the handling of the SIGUSR1 and SIGUSR2 signals. * xargs/xargs.1: Likewise. --- doc/find.texi | 19 +++++++++++++------ xargs/xargs.1 | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/doc/find.texi b/doc/find.texi index 48ecdb68..b50cb4e3 100644 --- a/doc/find.texi +++ b/doc/find.texi @@ -2745,12 +2745,19 @@ still wait for all child processes to exit (before version 4.9.0 this might not happen). @end table -For example, suppose you have a directory tree of large image files -and a @code{makeallsizes} script that takes a single file name and -creates various sized images from it (thumbnail-sized, web-page-sized, -printer-sized, and the original large file). The script is doing enough -work that it takes significant time to run, even on a single image. -You could run: +If @code{xargs} is run without the @samp{-P} option, it will not +change the handling of the @code{SIGUSR1} and @code{SIGUSR2} signals. +This means they will terminate the @code{xargs} program unless those +signals were set to be ignored in the parent process of @code{xargs}. +If you do not want parallel execution but you also do not want these +signals to be fatal, you can specify @code{-P 1}. + +Suppose you have a directory tree of large image files and a +@code{makeallsizes} script that takes a single file name and creates +various sized images from it (thumbnail-sized, web-page-sized, +printer-sized, and the original large file). The script is doing +enough work that it takes significant time to run, even on a single +image. You could run: @example find originals -name '*.jpg' | xargs -L 1 makeallsizes diff --git a/xargs/xargs.1 b/xargs/xargs.1 index df9ac11f..e6cae3d7 100644 --- a/xargs/xargs.1 +++ b/xargs/xargs.1 @@ -229,6 +229,16 @@ another. always waits for all child processes to exit before exiting itself (but see BUGS). +If you do not use the +.B \-P +option, +.B xargs +will not handle the SIGUSR1 and SIGUSR2 signals, meaning that they +will terminate the program (unless they were blocked in the parent +process before +.B xargs +was started). + .B Please note that it is up to the called processes to properly manage parallel access to shared resources. @@ -462,6 +472,15 @@ The .B \-\-show\-limits option can be used to discover the actual limits in force on the current system. + +In versions of +.B xargs +up to and including version 4.9.0, SIGUSR1 and SIGUSR2 would +not cause +.B xargs +to terminate even if the +.B \-P +option was not used. . .SH "HISTORY" -- 2.39.2