Sponsored Content
Top Forums Shell Programming and Scripting inotifywait to wait until completion Post 302564764 by ctsgnb on Friday 14th of October 2011 02:28:12 PM
Old 10-14-2011
Here is a little simulation of what you are trying to do :

Make a file and simulate a process on it

Code:
$ touch toto
$ tail -f toto &
[1] 9854
&

Now launch an "almost" endless loop that check every 10 sec if there is a process on it :
Code:
while :
> do
> trap break INT
> if ( fuser -fu toto >/dev/null 2>&1 )
> then echo "still running"
> else echo "ended"
> break
> fi
> sleep 10
> done
still running
still running
still running
...

... so far nothing happen : the process is still on the file, the loop see it and continue its check every 10sec check.

In another tty, i do a
Code:
$ kill 9854

on the tail -f process (pid=9854) see in you first window :

Code:
...
still running
[1]+  Complété              tail -f toto
ended

When the loop detects that no more pid is on the file, it echo "ended" and breaks out the loop

---------- Post updated at 08:28 PM ---------- Previous update was at 08:22 PM ----------

Note that you can also

Code:
cp -pr remoteserv:/remotePATH/remote_file /localPATH/local_file &
wait $!
echo "copy ended"

Of course those code are poor, i don't checksum nor check size nor check return code, but this was just a simple example for training purpose
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

file name completion

I'ld like to enable file name completion in ksh88 on AIX 5.2. My terminal is set to xterm. I've set the shell editor to emacs and ampped the arrow keys. Is there a way to map the tab key to a command like ESC= or any other file name completion command in emacvs that I may be not aware of since I'm... (1 Reply)
Discussion started by: rein
1 Replies

2. Shell Programming and Scripting

Need to execute 2 scripts, wait, execute 2 more wait, till end of file

:cool: I need to execute a shell script to do the following: cat a file run two back ground processes using the first two values from the file wait till those background processes finish run two more background processes using the next two values from the file wait till those background... (1 Reply)
Discussion started by: halo98
1 Replies

3. Shell Programming and Scripting

wait command - cat it wait for not-chile process?

Did not use 'wait' yet. How I understand by now the wait works only for child processes, started background. Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?) I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies

4. Shell Programming and Scripting

bash completion

hello, I have been trying for a couple days to figure this out to no avail. I am converting some csh code to bash. I have converted everything except the completion code. #bashrc (I set this alias in my bashrc) alias test='source ${PATH}/test.sh' #${PATH}/test.sh (returns some aliases and... (0 Replies)
Discussion started by: platypuus
0 Replies

5. Shell Programming and Scripting

calling a shell script in background and wait using "wait" in while loop

Hi, I am facing a strange issue, when i call a script from my while loop in background it doesnt go in background, despite the wait i put below the whil loop it goes forward even before the process put in background is completed. cat abc.txt | while read -u4 line do #if line contains #... (2 Replies)
Discussion started by: mihirvora16
2 Replies

6. Shell Programming and Scripting

Script using inotifywait

Is there a way to get my script to only trigger when a .ppt is created? #!/bin/bash while inotifywait -e create /ticker/powerpointshare; do sleep 30; sudo chmod -R 777 /ticker/powerpointshare/*.*; sleep 15; sudo reboot; done I'm not sure if this is even possible... (0 Replies)
Discussion started by: binary-ninja
0 Replies

7. Shell Programming and Scripting

Inotifywait tool in no there in Redhat 5.6

Hi, I want to monitor any new file to be created in some of the directory using inotifywait tool but this is not available in Redhat 5.6. Could you please let me know how to achieve (monitoring of file) without using inotifywait too? Because i dnt want to install this tool due to some reason.... (1 Reply)
Discussion started by: Pawan Kumar
1 Replies

8. Shell Programming and Scripting

Help with my BASH script with WINE and inotifywait

I'm trying to improve a script that I have running on a Ubuntu desktop that basically runs a powerpoint presentaions with announcements to TV's in diffrent parts of our building. My current script uses WINE to execute powerpoint viewer. The scripts that I currently use relies on inotifywait's... (1 Reply)
Discussion started by: binary-ninja
1 Replies

9. Shell Programming and Scripting

Bash-Completion, an example

Hello I've followed several bash-completion threads, usualy none were answered, because of obvious reasons. (of which i'm just aware since a day or a few) Non-the-less, because i was writing scripts, i never considered it to be possible to add this functionality. Also, because i though that... (0 Replies)
Discussion started by: sea
0 Replies

10. Shell Programming and Scripting

Inotifywait restart script prevents reboot when started

Hi, maybe someone could help me optimizing this little script. It works so far, but when running, reboot does not work. If kill inotifywait reboot from shell works. I think some optimization is required here. This script starts at the end of the boot process, from an external device and... (3 Replies)
Discussion started by: lowmaster
3 Replies
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)
All times are GMT -4. The time now is 10:39 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy