Wget and bash error: bash: line 0: fg: no job control

I am trying to run a series of commands in parallel through xargs. I created a null section of commands in a file cmd_list.txt, and then tried to run them in parallel with 6 threads as follows:

cat cmd_list.txt | xargs -0 -P 6 -I % bash -c %

However, I get the following error:

bash: line 0: fg: no job control

I narrowed down the problem with the length of individual commands in the list of commands. Here is an example of an artificially-long image upload command:

mkdir a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8
wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg

Just running the command wgetyourself, without a list of files and without xargs, works great. However, executing this command on the bash command line (again, without a list of files) fails with no job control error:

echo "wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg" | xargs -I % bash -c %

If I do not specify a long folder name and therefore shorten the command, it works fine:

echo "wget --no-check-certificate --no-verbose -O /tmp/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg" | xargs -I % bash -c %

xargs -s (), , (, 16000) - . , , bash -c, :

bash -c "wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg"

, , parallel (qaru.site/questions/285529/...), , , , .

Mac OS X 10.10.1 (Yosemite).

+4
2

, , -I xargs, OS X xargs, 255- . -J, 255 .

, :

echo "wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg" | xargs -J % bash -c %

bash, bash :

wget

, , . , , xargs , -0, :

echo "wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg" | xargs -0 -J % bash -c %

, , !

@CharlesDuffy, . OS X xargs , 255- .

+2

, , .

cat cmd_list.txt | xargs -0 -P 6 -I% bash -c%

- . "fg% 2", . "kill% 4".

, , , xargs .

cat cmd_list.txt | xargs -0 -P 6 -I\% bash -c \%

+1

Source: https://habr.com/ru/post/1570200/


All Articles