I discovered that GNU's xargs has a -P option to allow its processes to run in parallel. Great! Is this a GNU thing, or is it supported by other platforms as well?
xargs -P -- It definitely is not part of POSIX, and it isn't on HP UX, so it must be a GNU thing, like the time manipulations GNU date is capable of doing.
Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
Hi.
I was very surprised to learn about the additional capabilities of GNU/Linux xargs. It can be used as a throttle -- allow no more than n processes to be running at a time (from the processes it creates). More than that, xargs monitors the processes and if one of the n processes stops, xargs will pluck another of its arguments and fire off an additional process. Very nice, but not very well documented at all.
To see how this might work (if at all) on a non-GNU/Linux machine. I obtained the source from findutils - GNU Project - Free Software Foundation (FSF) onto an HP box, and compiled it. It took a long time, but it finished -- it compiles a few other things, e.g. the GNU version of find. The tests included in the source failed to run -- an item named runtest could not be located -- but I ran a small test of my own, essentially:
where burn is a script that prints start, sleeps, prints stop. Omitting the script and some output, but showing, for the number of processes being 4, that whenever a process ends, another one is started, but never more than 4:
So, for large-granularity parallel processing, this could be useful.
Of course, many people here could write a shell script to do much the same, but it is nice to have it done for you ... cheers, drl
Hi,
can anyone tell me in detail ?
what the following do in detail ?
I am trying to get a largest number in a list
Thanks
Tao
LARGEST=$(echo $* | xargs -n1 | sort -nr | tail -1) (3 Replies)
Hello, I need some help with xargs
$ ls
aaa bbb ccc ddd$ ls | xargs -I{} ls -la {}
-rw-rw-r--. 1 xxx xx 0 May 30 20:04 aaa
-rw-rw-r--. 1 xxx xx 0 May 30 20:04 bbb
-rw-rw-r--. 1 xxx xx 0 May 30 20:04 ccc
-rw-rw-r--. 1 xxx xx 0 May 30 20:04 dddit's possible to have output like this with... (3 Replies)
Using the bash shell I'm trying to either create a command for the command line or a script that will show netstat info for a given process name. Here is an example of what I'm trying to do:$ ps aux |grep catalina |grep -v grep | awk '{print $2}'
5132
$ netstat -nlp |grep 5132
(Not all processes... (11 Replies)
Dear all ,
any suggest on xargs to combine from (1.txt and 2.txt) to output.txt ?
thanks a lot.
1.txt
0123 BUM-5M BUM-5M 93490481 63839
0124 BUM-5M BUM-5M 112112 ... (3 Replies)
hi
Could any one please tell me the option using which we can run multiple commands using xargs
I have list of files, I want to run dos2unix and chmod at one shot on them
I tried google n searched man pages but couldnt really find the solution , please help
right now im doing this
ls... (4 Replies)
Hello there,
Let me show you a simple example of what I am trying to achieve:
1) I have an input text file with some lines:
1 a
2 b
3 c
2) And I want to run a command with these lines as arguments (+ arbitrary extra arguments). For example:
$ command "1 a" "2 b" "3 c" "bye"
I... (7 Replies)
Hi,
I have a requirement to RCP the files from remote server to local server.
Also the RCP has to run in parallel. However using 'xargs' retrives 2 file names during each loop. How do we restrict to only one file name using xargs and loop till remaining files.
I use the below code for... (2 Replies)
Hi there,
I am trying to move around 3000 files from one directory to another. The mv command is complaining from too many arguments. I tried to use the xargs command but with no luck. Could some body provide help?
Regards (4 Replies)