POV-Ray : Newsgroups : povray.unix : SIGINT : SIGINT Server Time
17 May 2024 01:03:52 EDT (-0400)
  SIGINT  
From: clipka
Date: 17 Dec 2008 11:30:01
Message: <web.49492582154fc06f84c81d110@news.povray.org>
Now this is weird & bad...

I started a set of renders using the following shell scripts:

---------------------------------
# render_many.sh:
nohup ./render_many_sub.sh >KnightMoves_many.log 2>&1 &
.. ./status_many.sh
---------------------------------
# render_many_sub.sh:
megapov -D foo.ini +oA.hdr +J1.0 &
sleep 9000
megapov -D foo.ini +oB.hdr +J0.9 >KnightMoves_B.log 2>&1 &
sleep 120
megapov -D foo.ini +oC.hdr +J0.8 >KnightMoves_C.log 2>&1 &
sleep 120
nice megapov -D foo.ini +oD.hdr +J0.7 >KnightMoves_D.log 2>&1 &
---------------------------------

(status_many.sh basically just calls "tail -f KnightMoves_many.log")

Now I would assume that the "nohup" command basically "decouples" the render
processes from the terminal.

Render A completed successfully a few hours ago. A few minutes ago, the other
render processes terminated as well - but *not* successfully. Instead, in all
the three logfiles I find:

---------------------------------
Possible Rendering Error: Got 1 SIGINT.

 10:17:18 Aborting render!
 10:17:18 User abort
---------------------------------

(Great, just a couple of minutes before the 10-hour renders would have finished
anyway! Someone out there seems to hate me...)

How could this happen? Am I missing something here?

I think I may have stopped some "tail" that was called via the "status_many.sh"
script about that time (don't remember whether it was the one automatically
started though, or one I started later, and I don't know whether I actually
Ctrl-C'ed it before closing the terminal); I also recall having Ctrl-C'ed a
"top" command running on another terminal, and later accidently having
Ctrl-C'ed (wrong keyboard, whoops!) a shell running in some terminal, but I
think neither of these was the terminal I started the render processes from,
and I'm comparatively sure that both events were only after the processes had
already terminated. But that's about all events that to my knowledge might have
caused a SIGINT to be sent to *some* process.

Another event that happened about that time was that I connected a display to
the Unix computer's VGA output, but I can't possibly imagine that could have
caused a SIGINT.

Presuming that running render tasks "safely" in the background is a common thing
on Unix systems, I expect most people here have some experience with this issue.
How could this have happened, and most of all, how can I protect my background
processes against such accidents in future it if not via "nohup"?

I'm running Debian Linux (4.0r5 "etch") for AMD64 here, using the standard
"bash" shell and MegaPOV 1.2.1.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.