So there's no way of knowing what process is doing what? If one pid were killed, would the other keep running but not do anything, or would it just spawn the process again once the loop went through again.
I had originally wanted to do something more like
But I couldn't get it to work. I think it has something to do with the colour coding used in the log files. Had I done it like this, would it have not spawned the second shell?
Is there a better way I could have accomplished this goal? I've only recently started trying to parse logs in real time like this, and aside from learning perl (which I hope to do eventually) I can't think of who better to have accomplished this.
Quote:
Originally Posted by alister
You are seeing that second shell because bash is spawning it to run the while loop:
This is also the reason why the effects of modifying variables within the while loop are not visible to the rest of the script.
I'm sorry, could you expand on this a bit? I'm not sure what you mean by modifying variables inside the loop...where else could I have done it?
I have come across the topic of changing shells, does that mean that all Unix operating systems comes with a variety of shells built in and its up to the user to select a shell of his/her choice? (2 Replies)
Hi,
Would like to ask the experts if anyone knows how to run a script like this:
dtterm -title shell1
run process1 on shell1
dtterm -title shell2
run process2 on shell2
cheers!
p/s: sorry if i used the wrong forum, quite concussed after watching world cup for several nights; but I... (2 Replies)
Hi all,
I have a shell script which calls other shell scripts, depending on the input.
Within a.sh, I have a command which calls b.sh (ie. ksh b.sh)
Normally, we use the exit function to terminate a shell. However, if I choose to call exit from b.sh, I will return to the parent shell who... (4 Replies)
Hi,
Is it possible to use multiple shells in one script.
There are sometimes we need to club shell specific commands in single script.
for example in bash mode we use -e with echo to use Escape sequence but in ksh it is not required. How to tell a UNIX command to run in a specific shell.
... (2 Replies)
HI,
I would like to ask You about some good books or links where I can find information about shells, theoretical information.
I will be grateful if You can help me
And I have question about zsh loop
trivial script:
#!/bin/zsh
for i in {1..100000}
do
echo $i;
doneexec time is 10... (9 Replies)
All,
I am pretty new to Unix and still in the learning curve :) I have a simple requirement for which I did not get an answer yet (Atleast I do not know how to keyword the search for my requirement!!!).
I have an executable script my.script1 in a folder /data/misc/scripts/dev, which when... (5 Replies)
how to run an already developed script run against a list of ip addresses solaris 8 question.
the script goes away and check traffic information, for example
check_GE-VLANStats-P3 1.1.1.1
and returns the results ok.
how do I run this against an ip list? i.e a list of 30 ip addresses (26 Replies)
Hi
What is the command to run additional available shells on top of default shell. I am using bash
also how can i tell that the additional shells are actually running?
Also what is the advantage of running additional shells on top of your default login shell of bash?
Lastly... (1 Reply)
Hi, unix newbi here.
Im currently on the bash shell, what are the commands to run additional shells?
for example i want to run csh and then ksh?
Thanks.
BT. (2 Replies)
Hi to all,
i have the following problem...
i want to run three commands in a script in different shells... the first command is running always and is needed for the second on to run properly... example
# Procedure 1
xterm -e exec1 arg1 arg2
# Procedure 2
xterm -e exec2 arg1 arg2
#... (6 Replies)
Discussion started by: paladinaeon
6 Replies
LEARN ABOUT DEBIAN
io::async::pid
IO::Async::PID(3pm) User Contributed Perl Documentation IO::Async::PID(3pm)NAME
"IO::Async::PID" - event callback on exit of a child process
SYNOPSIS
use IO::Async::PID;
use POSIX qw( WEXITSTATUS );
use IO::Async::Loop;
my $loop = IO::Async::Loop->new;
my $kid = $loop->fork(
code => sub {
print "Child sleeping..
";
sleep 10;
print "Child exiting
";
return 20;
},
);
print "Child process $kid started
";
my $pid = IO::Async::PID->new(
pid => $kid,
on_exit => sub {
my ( $self, $exitcode ) = @_;
printf "Child process %d exited with status %d
",
$self->pid, WEXITSTATUS($exitcode);
},
);
$loop->add( $pid );
$loop->run;
DESCRIPTION
This subclass of IO::Async::Notifier invokes its callback when a process exits.
For most use cases, a IO::Async::Process object provides more control of setting up the process, connecting filehandles to it, sending data
to and receiving data from it.
EVENTS
The following events are invoked, either using subclass methods or CODE references in parameters:
on_exit $exitcode
Invoked when the watched process exits.
PARAMETERS
The following named parameters may be passed to "new" or "configure":
pid => INT
The process ID to watch. Must be given before the object has been added to the containing "IO::Async::Loop" object.
on_exit => CODE
CODE reference for the "on_exit" event.
Once the "on_exit" continuation has been invoked, the "IO::Async::PID" object is removed from the containing "IO::Async::Loop" object.
METHODS
$process_id = $pid->pid
Returns the underlying process ID
$pid->kill( $signal )
Sends a signal to the process
AUTHOR
Paul Evans <leonerd@leonerd.org.uk>
perl v5.14.2 2012-10-24 IO::Async::PID(3pm)