Background and Foreground of a process within a script
I'm not sure if it is even possible but I figured if it was someone here would know how to do it...
I am running a script which starts a bunch of processes in the background but there is one process I would like to bring back to the foreground when complete. Unfortunately the process that I would like in the foreground must be started (and ends up waiting for user input) before some of the other processes. So in my mind I have two potential ways to accomplish this:
1) Start the process in the background and then using the 'fg' command bring it back to the foreground at the end of the script. i.e:
The output I would get from this is (with set -x):
Obviously within the script it tracks the jobs (proved by jobs -l) but it will not bring one of the jobs back the the foreground.
I also don't like this tactic that much because it means my script will not end until my 2nd process ends, if I can even get it working. Not that big of a deal, but there has got to be a better way.
Which leads me to:
2) Is there a way to bring a background process that is started by another shell (same user, or if I must use sudo I will) to the foreground of a different shell?
Using the same script above as an example:
Now I understand that the script starts a new shell so that is why when the script is completed that I cannot see the process in the background with jobs. Is it possible to bring this forward on this shell?
It might be impossible, since it sounds like it could be a nice security flaw, but if it was possible it would be the best fit for my situation.
I am sure some of you are wondering why in the world would I do this, but to keep a long post from being a novel I left that out. Basically the process I want to bring to the foreground allows us to enable some debugging.
Maybe there is a way to pass input to a command that is in the background? That would also solve my issue, but I don't think there is a way to do that either...
My system: I'm running RHEL 5.1 and currently using the bash shell (but I am willing to write the script in a different shell if you think it will make a difference)
Sorry for the long post, but I wanted to explain it correctly. If you have ANY ideas, I'm willing to hear it.
Thanks in advance!!
EDIT - Oh yeah, I didn't write the code to the processes that are actually running, so I don't know about what exactly everything is doing (as far as system calls and such). It was written in sections by different code monkeys and I'm integrating. Also - This is used for debugging only, won't be necessary in the delivered software.
1) Start the process in the background and then using the 'fg' command bring it back to the foreground at the end of the script. i.e:
See the "wait" builtin command ("help wait" in bash). You could do
Quote:
2) Is there a way to bring a background process that is started by another shell (same user, or if I must use sudo I will) to the foreground of a different shell?
I don't think this is normally possible without being a debugger. However, it is possible to use screen to attach login sessions to different terminals. But based on what else you described, I don't think that's possible.
It might be in theory possible to use gdb to attach to a process and run a script of debugging commands, such as "b exit(); c ; p value[2]"
UPDATE: I found a quick and easy way to do this. I was approaching it wrong. Rather than running the script normally (./script) all I need to do is source the script (source ./script). This runs it in the current shell and I am able to use jobs to manage the background processes.
Hi all,
I used the code given by cfajohnson on this forum to generate background colors for xterm.
Thanks cfajohnson... (sorry wasnt allowed to past the complete url)
n=200 ## adjust to taste: higher value, lighter background n1=$(( 256 - $n )) bg=$( printf "#%x%x%x\n" $(( $RANDOM % $n1 +... (2 Replies)
Hi,
Need an urgent help. I have a program executing in foreground. I need to execute it in background and also to remove terminal dependency.
Thanks In advance.
116@434 (7 Replies)
Hi, guys:
I am working on my own shell using c. When I put a process into the background, how can I put it back to the foreground using tcsetpgrp?
Thanks (3 Replies)
What I need to learn is how to use a script that launches background processes, and then kills those processes as needed.
The script successfully launches the script. But how do I check to see if the job exists before I kill it?
I know my problem is mostly failure to understand parameter... (4 Replies)
I have many CPU intensive processes running and sometimes I run them in the foreground so that I can see what the output is.
I want to send that foreground process to the background, but also have it direct the output to a logfile.
I know to send something to the bg I do
Ctrl-z on the FG... (6 Replies)
What are all the difference between a Background and Foreground processes ?!
A Background process does not have access to STDIN and OUT.. What else ?
Is there any detailed description available somewhere ? (5 Replies)
I've tried this a long time ago and was successful but could not remember how i did it. Tried ctrl+Z and then used bg %
could not figure what i did after to keep it no hangup -
not sure if used nohup -p pid, can u plz help me out if this can be done.
Any help will be appreciated. (12 Replies)
hi, i am just wondering that wen we give the following code we make a process run in background...can the viceversa be performed?i.e can this be made foreground again
# sleep 75&
21751
# (4 Replies)
I am using a telnet session (VT100) and need to modify my .profile so that it will set the color of the telnet session. I am not using Xterm (ie: can't use .Xdefaults). I am able to change the colors via menu's but need to preset in .profile. Is this possible??? Can't find anything at all on how... (3 Replies)
my shell is /sbin/sh. i added stty susp '^Z' with the intention of being able to switch between foreground and background. but the result was strange.
i had 2 servers. one is sun the os is 8 and the other is hpux v11. both of them had the same shell. but on hpux, it works perfectly fine while... (9 Replies)