Sponsored Content
Top Forums Shell Programming and Scripting Waiting for an arbitrary background process (limiting number of jobs running) Post 302390838 by p.f.moore on Friday 29th of January 2010 07:03:28 AM
Old 01-29-2010
Quote:
Originally Posted by dpc.ucore.info
I think this is too much for a shell and using C or at least some real scripting language may be required here. However I'd love to see a solution for shell if possible.
I tried a perl solution and got really bogged down because I couldn't find an easy way of running a background command (disclaimer: it's a VERY long time since I used perl, but I don't have Python on the box I'm working with :-() Messing round with
Code:
sub spawn {
  $pid = fork;
  unless ($pid) {
    exec @_;
  }
  $pid;
}

seems fraught with potential issues that I don't understand (for a start, it doesn't handle shell metacharacters - should I use exec "sh", "-c", @_ or some similar incantation?)

If someone can confirm a decent Perl equivalent of the shell
Code:
some command possibly with metacharacters &

I'll see what I can do with the rest of it...

Paul.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

running process in background

I'm trying to install a solaris 9 patch cluster and when I try to use & to run in background it won't allow me to enter in my sudo password so it fails the install and sudo auth. Does Solaris not have screen like linux? If & will work what am I doing wrong? sudo ./install_cluster -q & is... (3 Replies)
Discussion started by: kingdbag
3 Replies

2. Shell Programming and Scripting

Issues with exit after running jobs in background

I have the following sample script to run a script the jobs with the same priority(in this case field3) in parallel; wait for the jobs to finish and run the next set of jobs in parallel.When all the lines are read exit the script. I have the following script which is doing evrything I want... (1 Reply)
Discussion started by: hyennah
1 Replies

3. Shell Programming and Scripting

background jobs exit status and limit the number of jobs to run

i need to execute 5 jobs at a time in background and need to get the exit status of all the jobs i wrote small script below , i'm not sure this is right way to do it.any ideas please help. $cat run_job.ksh #!/usr/bin/ksh #################################### typeset -u SCHEMA_NAME=$1 ... (1 Reply)
Discussion started by: GrepMe
1 Replies

4. Shell Programming and Scripting

How to find the jobs running in background and stop

Hi All, I have requirement. I am running a job every 30mins. before starting the process, i need to check the process, if the process is still running then i need not trigger the process again, if it is not running then trigger the process again. I am using cron to trigger the shell script. Can... (7 Replies)
Discussion started by: srinivas_paluku
7 Replies

5. Shell Programming and Scripting

Waiting for a background process to finish

Hello, I am a novice shell script programmer. And facing this problem any help is appreciated. I m writing a shell script and running few commands in it background as I have to run them simultaneously. Sample code : sql_prog & sql_prog & sql_prog & echo "Process Completed" Here... (2 Replies)
Discussion started by: vineetbhati
2 Replies

6. Shell Programming and Scripting

Waiting for the background process to finish

Hi, I have on shell script which internally calls more than one scripts which run in background. These scripts cannot be modified to run in foreground. eg. myscript.sh -> bulk_launcher.sh -> acq_launcher.sh -> bulk_loader.sh I want the calling shell script myscript.sh to wait till the... (7 Replies)
Discussion started by: AB10
7 Replies

7. Shell Programming and Scripting

waiting on jobs in bash, allowing limited parallel jobs at one time, and then for all to finish

Hello, I am running GNU bash, version 3.2.39(1)-release (x86_64-pc-linux-gnu). I have a specific question pertaining to waiting on jobs run in sub-shells, based on the max number of parallel processes I want to allow, and then wait... (1 Reply)
Discussion started by: srao
1 Replies

8. Shell Programming and Scripting

command to see process running at background

Hi , I want to see all the background process that are running in unix box machine...please guide me is there any specific command for that..since I am executing some scripts at background..!!:confused: (1 Reply)
Discussion started by: nks342
1 Replies

9. AIX

Use of screen in running background jobs and how to use this

Hello, Please advise use of screen in running jobs in nohup background and how to use this Best regards, Vishal (1 Reply)
Discussion started by: Vishal_dba
1 Replies

10. UNIX for Beginners Questions & Answers

Running process in the background

Hi, I have this simple c program that creates duplicate process with fork(): #include <sys/types.h> main() { if (fork() == 0) while(1); else while(1); } I tried running it in the background gcc -o test first.c test & And I got this list of running process: (4 Replies)
Discussion started by: uniran
4 Replies
queuedefs(4)						     Kernel Interfaces Manual						      queuedefs(4)

NAME
queuedefs - queue description file for at, batch, and crontab SYNOPSIS
DESCRIPTION
The file describes the characteristics of the queues managed by (see cron(1M)). Each non-comment line in this file describes one queue. The format of the lines are as follows: [njob[nice[nwait The fields in this line are: q The name of the queue, such that is the default queue for jobs started by (see at(1)), is the queue for jobs started by (see at(1)), and is the queue for jobs run from a file (see crontab(1)). Queue names through designate user-defined queues. njob The maximum number of jobs that can be run simultaneously in that queue. Although any number can be specified here, (see cron(1M)) by default limits the number of jobs that can be run on all the queues to 100. This limitation can be removed by setting the variable to 1 in the file. nice The value to give to all jobs in that queue that are not run with a user ID of super-user (see nice(1)). The default value is 2. nwait The number of seconds to wait before rescheduling a job that was deferred because more than njob jobs were running in that job's queue, or because more than 100 jobs were running in all the queues (see njob above). EXAMPLES
Consider the following file: The file is interpreted as follows: The queue, for jobs (see at(1)), can have up to 4 jobs running simultaneously, and those jobs will be run with a value of 1. Since no nwait value is given, if a job cannot be run because too many other jobs are running, will wait 60 seconds before trying again to run it (see cron(1M)). The queue, for jobs (see at(1)), can have up to 2 jobs running simultaneously. Those jobs will be run with a value of 2. If a job cannot be run because too many other jobs are running, will wait 90 seconds before trying again to run it. All other queues can have up to 100 jobs running simultaneously. They will be run with a value of 2, and if a job cannot be run because too many other jobs are running, will wait 60 seconds before trying again to run it. SEE ALSO
at(1), nice(1), crontab(1), cron(1M), proto(4). STANDARDS CONFORMANCE
queuedefs(4)
All times are GMT -4. The time now is 03:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy