Sponsored Content
Top Forums Shell Programming and Scripting How to run multiple functions in Background in UNIX Shell Scripting? Post 302813805 by karthikram on Tuesday 28th of May 2013 07:28:39 AM
Old 05-28-2013
How to run multiple functions in Background in UNIX Shell Scripting?

Hi,

I am using ksh , i have requirement to run 4 functions in background , 4 functions call are available in a case that case is also in function, i need to execute 1st function it should run in background and return to case and next i will call 2nd function it should run in background and return to case again to ask for anyother option to execute in backgorund.

I tried to
Code:
function_name <parameters> |& 
echo $!

using this 1 functions is being called and running and i am able to call other function but it is displaying as process already exists and the main script itself is getting terminated.

I searched the forum and saw fork(); command but i am not clear to use that and i saw in one forum that it is bad to use that and not advisable.

Please Advise how to achive the functions to run in background and i cant split the script making 4 different scripts.

Thanks,
Regards,
karthikram
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

run a shell in the background

How can I run a shell in the background? cat test.sh #!/bin/sh sleep 600 Thank u very much indeed! (2 Replies)
Discussion started by: GCTEII
2 Replies

2. Shell Programming and Scripting

difference between AIX shell scripting and Unix shell scripting.

please give the difference between AIX shell scripting and Unix shell scripting. (2 Replies)
Discussion started by: haroonec
2 Replies

3. Shell Programming and Scripting

Background Process Shell Scripting

I have a following program: echofunc() { filename=$1 echo "reading $filename" while read line do echo $line; sleep 6; done < $filename } split -5 new.dat ls x* > input.dat while read file do echofun $file & done < input.dat (3 Replies)
Discussion started by: dhieraj
3 Replies

4. Shell Programming and Scripting

Run Multiple Functions over SSH (BASH)

I am trying to write a script that will ssh into a remote machine and recurse through a specified directory, find mp3 files which may be two or three directories deep (think iTunes: music/artist/album/song.mp3), and scp them back to the machine running the script. The script should also maintain... (3 Replies)
Discussion started by: johnnybg00de
3 Replies

5. Shell Programming and Scripting

background functions doesn't display their output

hello there, there's a function, in my shell script, i'd like to run in the background. here's an example: log() { local SELF=${0##*/} tty -s && echo ": $*" } some_func() { # do something log "This text is not displayed in the terminal's output when running in the... (1 Reply)
Discussion started by: Shedon
1 Replies

6. Shell Programming and Scripting

shell script does not work if run in background

Dear All, I am trying to run a script in background like ./scriptname.sh & but when i try to run it in background it is giving me an error "syntax error at line 12: `(' unexpected" at the line 12, there is a function definition "function getFileList()". This script runs fine if i run on... (2 Replies)
Discussion started by: bilalghazi
2 Replies

7. Shell Programming and Scripting

Shell scripting issue-running the background script

I have written the below query to genrate a telephone.I am passing account number from oracle database. I am calling 2 scripts which generate the bill 1. bip.sh (it runs in the background) 2.runXitInvoice_PROFORMA_integ bip.sh generates a number which runXitInvoice_PROFORMA_integ uses.How... (7 Replies)
Discussion started by: rafa_fed2
7 Replies

8. UNIX for Beginners Questions & Answers

How to run a shell script in background without showing in the terminal?

Hi Guys, i am having a script which checks for ip address is pingable or not,when i execute this script in terminal it keeps on showing the pinging status of every ip address and it takes more time when i check for 100 ip address,How to do run a script in background without showing in the terminal... (4 Replies)
Discussion started by: Meeran Rizvi
4 Replies

9. Shell Programming and Scripting

Shell script to apply functions to multiple columns dynamically

Hello, I have a requirement to apply hashing algorithm on flat file on one or more columns dynamically based on header sample input file ID|NAME|AGE|GENDER 10|ABC|30|M 20|DEF|20|F say if i want multiple columns based on the header example id,name or id,age or name,gender and hash and... (13 Replies)
Discussion started by: mkathi
13 Replies

10. UNIX for Beginners Questions & Answers

Export Oracle multiple tables to multiple csv files using UNIX shell scripting

Hello All, just wanted to export multiple tables from oracle sql using unix shell script to csv file and the below code is exporting only the first table. Can you please suggest why? or any better idea? export FILE="/abc/autom/file/geo_JOB.csv" Export= `sqlplus -s dev01/password@dEV3... (16 Replies)
Discussion started by: Hope
16 Replies
GEARMANCLIENT.ADDTASKBACKGROUND(3)					 1					GEARMANCLIENT.ADDTASKBACKGROUND(3)

GearmanClient::addTaskBackground - Add a background task to be run in parallel

SYNOPSIS
public GearmanTask GearmanClient::addTaskBackground (string $function_name, string $workload, [mixed &$context], [string $unique]) DESCRIPTION
Adds a background task to be run in parallel with other tasks. Call this method for all the tasks to be run in parallel, then call Gear- manClient::runTasks to perform the work. PARAMETERS
o $function_name - A registered function the worker is to execute o $workload - Serialized data to be processed o $context - Application context to associate with a task o $unique - A unique ID used to identify a particular task RETURN VALUES
A GearmanTask object or FALSE if the task could not be added. EXAMPLES
Example #1 Two tasks, one background and one not This example illustrates the difference between running a background task and a normal task. The client adds two tasks to execute the same function, but one is added with addTaskBackground. A callback is set so that progress of the job can be tracked. A simple worker with an artificial delay reports on the job progress and the client picks this up through the callback. Two workers are run for this example. Note that the background task does not show in the client output. <?php # The client script # create our gearman client $gmc= new GearmanClient(); # add the default job server $gmc->addServer(); # set a couple of callbacks so we can track progress $gmc->setCompleteCallback("reverse_complete"); $gmc->setStatusCallback("reverse_status"); # add a task for the "reverse" function $task= $gmc->addTask("reverse", "Hello World!", null, "1"); # add another task, but this one to run in the background $task= $gmc->addTaskBackground("reverse", "!dlroW olleH", null, "2"); if (! $gmc->runTasks()) { echo "ERROR " . $gmc->error() . " "; exit; } echo "DONE "; function reverse_status($task) { echo "STATUS: " . $task->unique() . ", " . $task->jobHandle() . " - " . $task->taskNumerator() . "/" . $task->taskDenominator() . " "; } function reverse_complete($task) { echo "COMPLETE: " . $task->unique() . ", " . $task->data() . " "; } ?> <?php # The worker script echo "Starting "; # Create our worker object. $gmworker= new GearmanWorker(); # Add default server (localhost). $gmworker->addServer(); # Register function "reverse" with the server. $gmworker->addFunction("reverse", "reverse_fn"); print "Waiting for job... "; while($gmworker->work()) { if ($gmworker->returnCode() != GEARMAN_SUCCESS) { echo "return_code: " . $gmworker->returnCode() . " "; break; } } function reverse_fn($job) { echo "Received job: " . $job->handle() . " "; $workload = $job->workload(); $workload_size = $job->workloadSize(); echo "Workload: $workload ($workload_size) "; # This status loop is not needed, just showing how it works for ($x= 0; $x < $workload_size; $x++) { echo "Sending status: " . ($x + 1) . "/$workload_size complete "; $job->sendStatus($x+1, $workload_size); $job->sendData(substr($workload, $x, 1)); sleep(1); } $result= strrev($workload); echo "Result: $result "; # Return what we want to send back to the client. return $result; } ?> Worker output for two workers running: Received job: H:foo.local:65 Workload: !dlroW olleH (12) 1/12 complete Received job: H:foo.local:66 Workload: Hello World! (12) Sending status: 1/12 complete Sending status: 2/12 complete Sending status: 2/12 complete Sending status: 3/12 complete Sending status: 3/12 complete Sending status: 4/12 complete Sending status: 4/12 complete Sending status: 5/12 complete Sending status: 5/12 complete Sending status: 6/12 complete Sending status: 6/12 complete Sending status: 7/12 complete Sending status: 7/12 complete Sending status: 8/12 complete Sending status: 8/12 complete Sending status: 9/12 complete Sending status: 9/12 complete Sending status: 10/12 complete Sending status: 10/12 complete Sending status: 11/12 complete Sending status: 11/12 complete Sending status: 12/12 complete Sending status: 12/12 complete Result: !dlroW olleH Result: Hello World! Client output: STATUS: 1, H:foo.local:66 - 1/12 STATUS: 1, H:foo.local:66 - 2/12 STATUS: 1, H:foo.local:66 - 3/12 STATUS: 1, H:foo.local:66 - 4/12 STATUS: 1, H:foo.local:66 - 5/12 STATUS: 1, H:foo.local:66 - 6/12 STATUS: 1, H:foo.local:66 - 7/12 STATUS: 1, H:foo.local:66 - 8/12 STATUS: 1, H:foo.local:66 - 9/12 STATUS: 1, H:foo.local:66 - 10/12 STATUS: 1, H:foo.local:66 - 11/12 STATUS: 1, H:foo.local:66 - 12/12 COMPLETE: 1, !dlroW olleH DONE SEE ALSO
GearmanClient::addTask, GearmanClient::addTaskHigh, GearmanClient::addTaskLow, GearmanClient::addTaskHighBackground, Gearman- Client::addTaskLowBackground, GearmanClient::runTasks. PHP Documentation Group GEARMANCLIENT.ADDTASKBACKGROUND(3)
All times are GMT -4. The time now is 05:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy