Sponsored Content
Full Discussion: execution in background
Top Forums Programming execution in background Post 56797 by mile1982 on Tuesday 12th of October 2004 08:14:42 AM
Old 10-12-2004
execution in background

hey

im having trouble understanding how to execute commands in the background. i did some research and saw that you only have to fork and not wait for the child to finish. in another case you have to change the process group. i ve really tried both of them but i just cant get them to work. so i anyone feels like helping out, id appreciate it a lot. thanks

heres what i got so far.

a->background is set to 1 if one of the arguments on the command line equals '&'.

Code:
 /* create a process space */

      if ((pid = fork()) < 0) {

        perror ("Fork failed");
        exit(errno);
      }

      if (!pid) { // pid == 0

	printf(" \n if (!pid) = %d ", pid);

        printf (" child process[%d]\n", getpid ()); /* Display child PID */
        /* Child process */

	if (a->background == 1) {

// so when it comes across a '&', 

      	   if (fork () == 0) {

	     // just fork(); do not wait for the child
	     signal (SIGQUIT, originalQuitHandler); /* Oldhandler */
             setpgid (0, getpid ()); /* Change process group */
             execvp(a->com_name, a->argv);
	   }
	}

	else {

           /* This is the child, so execute the ls */ 
           execvp (a->com_name, a->argv);
	}
      }

      if (pid) {

	printf(" \n if (pid) = %d ", pid);
        
         /* We're in the parent; let's wait for the child to finish */
        waitpid (pid, NULL, 0);
      }
      	
	return;

thanks again

mile 1982 8O
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

process in background

Hi Guys, I am facing some weird problem with my shell script. The script shows up a menu and for every ontion internally calls a shell script which start/stop various servers. When I am using '&' while calling the internal shell script so that the server run in the background. For exiting... (1 Reply)
Discussion started by: agoyal
1 Replies

2. Shell Programming and Scripting

background process

Hi, In shell script when I use script1 >> filelog the echo statments of script1 gets printed in the filelog but when I try to run script in background i.e, script1 & >> filelog nothing gets printed in the filelog. Anybody knows whats going on here. thanks (3 Replies)
Discussion started by: k_oops9
3 Replies

3. Shell Programming and Scripting

background jobs

Hi, i have a problem with turning a job into backgrund. When i enter this at the shell: spice -b darlington.cir -r output.raw > screenout.tmp & and then let me show the currently running jobs, i get the following output: + Suspended (tty output) spice -b darlington.cir -r output.raw >... (4 Replies)
Discussion started by: qsi
4 Replies

4. Shell Programming and Scripting

Background execution of a script

Hi All, Have a script called FTPIN-xx.sh. It does stuff and when all is done, it is to execute another. However, I'd like to have it execute the second script in the background or in a fashion that would allow my script to complete without having to wait. I'm robbing the command from how I... (2 Replies)
Discussion started by: Cameron
2 Replies

5. UNIX for Dummies Questions & Answers

Parameters and background

Hello everyone, can you advice on how to execute a script passing parameters to it as well as requesting it to run in the background? It seems that my last character of the command line (& for background execution) gets taken in as an additional parameters and the job runs in the foreground.... (8 Replies)
Discussion started by: gio001
8 Replies

6. Shell Programming and Scripting

Help in background process

Hi, I have a main script(main.ksh) within which I have called another script(sub.ksh). The sub.ksh script is made to run in the background using '&'. The main.ksh script logs the information in a logfile main_ddmmyy and the sub.ksh script also logs the information in the log file sub_ddmmyy.... (5 Replies)
Discussion started by: chella
5 Replies

7. Shell Programming and Scripting

Expect Issue Serial Forground Execution vs Concurrent Background Execution

I have an expect script that interrogates several hundred unix servers for both access and directories therein using "ssh user@host ls -l /path". The combination of host/path are unique but the host may be interrogated multiple times if there are multiple paths to test. The expect script is run... (2 Replies)
Discussion started by: twk
2 Replies

8. UNIX for Dummies Questions & Answers

Background Process

I need to submit a script that will continue to run after logging out and after a reboot or shutdown. I entered the following: nohup script & The script continues to run in the background after logging off the system but is killed after a reboot or shutdown. Any help would be greatly... (1 Reply)
Discussion started by: powwm
1 Replies

9. Shell Programming and Scripting

Background Processes

Ok guys so I have my first dummy shell almost done except for one tiny part: I do not know how to run a process in the background, from the code! I already know how to do that in a normal shell: $ program & However, no clue when it comes to how to program that thing. :eek: A very... (2 Replies)
Discussion started by: Across
2 Replies

10. Shell Programming and Scripting

Ssh in the background

Hi, I am trying to execute an ssh command in my script. ssh abcd@server_name After this command it actually logs in to the server asking for password prompt and then actually logs in to the server. I want all this to be happening in the background and show noithing in the output of my... (8 Replies)
Discussion started by: vital_parsley
8 Replies
Tcl_DetachPids(3)					      Tcl Library Procedures						 Tcl_DetachPids(3)

__________________________________________________________________________________________________________________________________________________

NAME
Tcl_DetachPids, Tcl_ReapDetachedProcs, Tcl_WaitPid - manage child processes in background SYNOPSIS
#include <tcl.h> Tcl_DetachPids(numPids, pidPtr) Tcl_ReapDetachedProcs() Tcl_Pid Tcl_WaitPid(pid, statusPtr, options) ARGUMENTS
int numPids (in) Number of process ids contained in the array pointed to by pidPtr. int *pidPtr (in) Address of array containing numPids process ids. Tcl_Pid pid (in) The id of the process (pipe) to wait for. int *statusPtr (out) The result of waiting on a process (pipe). Either 0 or ECHILD. int options (in) The options controlling the wait. WNOHANG specifies not to wait when checking the process. _________________________________________________________________ DESCRIPTION
Tcl_DetachPids and Tcl_ReapDetachedProcs provide a mechanism for managing subprocesses that are running in background. These procedures are needed because the parent of a process must eventually invoke the waitpid kernel call (or one of a few other similar kernel calls) to wait for the child to exit. Until the parent waits for the child, the child's state cannot be completely reclaimed by the system. If a parent continually creates children and doesn't wait on them, the system's process table will eventually overflow, even if all the children have exited. Tcl_DetachPids may be called to ask Tcl to take responsibility for one or more processes whose process ids are contained in the pidPtr array passed as argument. The caller presumably has started these processes running in background and does not want to have to deal with them again. Tcl_ReapDetachedProcs invokes the waitpid kernel call on each of the background processes so that its state can be cleaned up if it has exited. If the process has not exited yet, Tcl_ReapDetachedProcs does not wait for it to exit; it will check again the next time it is invoked. Tcl automatically calls Tcl_ReapDetachedProcs each time the exec command is executed, so in most cases it is not necessary for any code outside of Tcl to invoke Tcl_ReapDetachedProcs. However, if you call Tcl_DetachPids in situations where the exec command may never get executed, you may wish to call Tcl_ReapDetachedProcs from time to time so that background processes can be cleaned up. Tcl_WaitPid is a thin wrapper around the facilities provided by the operating system to wait on the end of a spawned process and to check a whether spawned process is still running. It is used by Tcl_ReapDetachedProcs and the channel system to portably access the operating sys- tem. KEYWORDS
background, child, detach, process, wait Tcl Tcl_DetachPids(3)
All times are GMT -4. The time now is 01:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy