11-14-2008
Bash Trap Problem?
Hey all, I'm a fairly new shell scripter (been writing some very basic stuff for a couple of years once in a blue moon).
I have the need to start 2 or 3 processes from within a bash script when it's run then have the script kind of hang out and wait for the user to ctrl+c and when that happens the 2 or 3 running processes should be terminated and the script should continue.
I have a lot of the script written but am stuck at this point. I think I need to grab the PID #'s of the running processes using $$ or something then when CTRL-C is hit, send them a kill type signal but I've read a lot and message around with the trap command and can't seem to get it working right. Basically it would like like this.
./run_script.sh
Process 1 starts
Process 2 starts
Process 3 starts
Wait for user to hit [CTRL+C]...
[ctrl+c] is pressed
Process 1 ends
Process 2 ends
Process 3 ends
Script continues..
Any help you can give would be appreciated.
Thanks!
JS
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am having a unix script which in turns calls another unix script.
Both are creating some temp files in /tmp which are supposed to be deleted after the end of each run
In the child script if I have statement like
trap "rm -f $messagefile" EXIT
A similar statement is there in parent... (3 Replies)
Discussion started by: superprogrammer
3 Replies
2. Shell Programming and Scripting
hey champs,
I have a process running.......i have to catch/trap the signal when the process is being interupted/killed (kill -9 pid) option......
how can i achieve the same thru my process........
let my process is a.sh and it supposed to take 13 mins to complete, but due to some problem ,... (15 Replies)
Discussion started by: manas_ranjan
15 Replies
3. Shell Programming and Scripting
Hi folks,
I have tried to add some trap detection in the below script....this script is used to monitor database activities...in a rather awkward way :rolleyes:....
The idea behind adding trap is that....this script creates lots of temporary files in the running folder to store the count... (1 Reply)
Discussion started by: frozensmilz
1 Replies
4. Shell Programming and Scripting
In my Bash script I have an exit/cleanup function in a trap statement like:
trap exitCleanup 1 2 3 6 15 25
Is there anyway to capture which signal # has occurred to record in a log file. Please note I am trying to avoid something like:
trap 'mySignal=1; exitCleanup' 1
trap... (1 Reply)
Discussion started by: ckmehta
1 Replies
5. Shell Programming and Scripting
Hi All ,
Could you please help me in resolving the below problem.
I have 2 Script file say
Scrip1.sh
Script2.sh.
Initially Script1.sh is started executed and inside the script1 , SIGINT is trapped to a separate cleanup process and exit.
While Script1.sh is started executing ,... (1 Reply)
Discussion started by: sundar_ranga
1 Replies
6. Shell Programming and Scripting
I am trying to trap CTRL-C, now the program I call has it's own exit message, I think this is the problem ..
This is what I have now :
function dothis
{
echo 'you hit control-c'
exit
}
function settrap
{
trap dothis SIGINT
}
settrap
until false; do
./ITGRecv.exe
doneDoing this I... (2 Replies)
Discussion started by: Pmarcoen
2 Replies
7. Shell Programming and Scripting
I have a bash script using "set -o nounset" to prevent unset variables.
However I have created a trap to run some cleanup options upon exit of the script which works fine for CTRL-C, etc. but if it hits and unset variable the trap does not run and the script bails out without having tidied up... (3 Replies)
Discussion started by: jelloir
3 Replies
8. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
That is the last reply I received from my instructor, and I'm looking for some alternatives.
When using... (2 Replies)
Discussion started by: newuser45
2 Replies
9. Shell Programming and Scripting
Hello.
In bash, is there a way to trap error "file not found" when a script call another script which is not found; then abort.
Example ( part of script running with -x option set) :
+ return 0
+ RETURN_CODE=0
+ ]
+ /root/bin/200_yast_install/00_reset_yast_install
bash:... (5 Replies)
Discussion started by: jcdole
5 Replies
10. Solaris
Hello,
We have a T5140 server with Solaris 10 and its suddenly throwing "segmentation core" when I login into the server and not showing any output for commands like df, mount etc. so I had to reboot the server to fix this issue. Please note that there's no boot disk mirroring.
But... (2 Replies)
Discussion started by: prvnrk
2 Replies
LEARN ABOUT MOJAVE
tap::parser::iterator::process5.18
TAP::Parser::Iterator::Process(3pm) Perl Programmers Reference Guide TAP::Parser::Iterator::Process(3pm)
NAME
TAP::Parser::Iterator::Process - Iterator for process-based TAP sources
VERSION
Version 3.26
SYNOPSIS
use TAP::Parser::Iterator::Process;
my %args = (
command => ['python', 'setup.py', 'test'],
merge => 1,
setup => sub { ... },
teardown => sub { ... },
);
my $it = TAP::Parser::Iterator::Process->new(\%args);
my $line = $it->next;
DESCRIPTION
This is a simple iterator wrapper for executing external processes, used by TAP::Parser. Unless you're writing a plugin or subclassing,
you probably won't need to use this module directly.
METHODS
Class Methods
"new"
Create an iterator. Expects one argument containing a hashref of the form:
command => @command_to_execute
merge => $attempt_merge_stderr_and_stdout?
setup => $callback_to_setup_command
teardown => $callback_to_teardown_command
Tries to uses IPC::Open3 & IO::Select to communicate with the spawned process if they are available. Falls back onto "open()".
Instance Methods
"next"
Iterate through the process output, of course.
"next_raw"
Iterate raw input without applying any fixes for quirky input syntax.
"wait"
Get the wait status for this iterator's process.
"exit"
Get the exit status for this iterator's process.
"handle_unicode"
Upgrade the input stream to handle UTF8.
"get_select_handles"
Return a list of filehandles that may be used upstream in a select() call to signal that this Iterator is ready. Iterators that are not
handle based should return an empty list.
ATTRIBUTION
Originally ripped off from Test::Harness.
SEE ALSO
TAP::Object, TAP::Parser, TAP::Parser::Iterator,
perl v5.18.2 2014-01-06 TAP::Parser::Iterator::Process(3pm)