[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Protect Loop Execution with Traps
From: |
Roger |
Subject: |
Re: Protect Loop Execution with Traps |
Date: |
Tue, 28 Jan 2020 15:49:32 -0500 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
>If you run these, and try to kill them with Ctrl-C, you may find that
>the first one behaves perfectly (stops when you ask), and the second
>one does not. It may take several tries to kill the second one. You
>might have better luck suspending it with Ctrl-Z first, then killing
>the shell only, then fg'ing the job.
>
>See <https://www.cons.org/cracauer/sigint.html> for details.
>
>In a nutshell, ping(8) is a misbehaving program. It sets a SIGINT
>trap (so that it can report statistics when you interrupt it), but
>it doesn't exit as a result of the signal. The shell sees that the
>program didn't exit due to SIGINT, and decides that it (the shell)
>should not exit either.
As I slept on this, I realized the likeliness some programs are also trapping
CTRL-C as you just explained.
The programs I'm using within a loop were ffmpeg && mv (rename) after verifying
ffmpeg created a file >0 bytes. As I speculated, I was likely doing too much
within one loop and should likely isolate each task to it's own specific loop,
mitigating such behaviour. (The check should have also likely checked for a
ffmpeg created file >= to the original file before renaming/moving.)
In other words, it's safer to
1) Have ffmpeg process all files within it's own loop, then
2) Perform a second loop renaming files using mv.
But as I re-think think this, should be good Bash scripting practice to
integrate a trap within each loop?
>Whatever program you're using inside your loop may have the same
>issues. It's extremely common.
Another thought occurred to me last night, no wonder they call it Bash. When
you execute a Bash loop, you'll likely be sure to find yourself pounding
"CTRL-C" on your keyboard!
As far as the design/intigration of the trap within a loop, I'm guessing my
initial post contained the most simplistic, readable, proper form of a trap for
creating a safe quick exiting loop?
--
Roger
http://rogerx.sdf.org/
signature.asc
Description: Digital signature
- Protect Loop Execution with Traps, Roger, 2020/01/28
- Re: Protect Loop Execution with Traps, Greg Wooledge, 2020/01/28
- Re: Protect Loop Execution with Traps,
Roger <=
- Re: Protect Loop Execution with Traps, Greg Wooledge, 2020/01/28
- Re: Protect Loop Execution with Traps, Roger, 2020/01/28
- Re: Protect Loop Execution with Traps, Robert Elz, 2020/01/29
- Re: Protect Loop Execution with Traps, Greg Wooledge, 2020/01/29
- Re: Protect Loop Execution with Traps, Roger, 2020/01/29
- Re: Protect Loop Execution with Traps, Roger, 2020/01/29
- Re: Protect Loop Execution with Traps, Greg Wooledge, 2020/01/29