Windows doesn't actually have signals, so HTCondor simulates them when talking to it's own daemons
by sending socket messages - so when the starter log on windows says 'Got SIGTERM' it's lying.
what it really got was a daemon command message.
We can't do the same thing for jobs though, for windows jobs we send a WM_CLOSE message to the job.
So you want to somehow catch the WM_CLOSE in python and treat it like a SIGTERM.
I would imagine that this would involve somehow getting python to register a ConsoleControlHandler callback
https://msdn.microsoft.com/en-us/library/ms686016(VS.85).aspx
-tj
On 8/7/2015 2:16 PM, Ben Cotton wrote:
Has anyone had any luck trapping when a Python script is placed on
hold on Windows? My proof-of-concept script below works on Linux, but
not on Windows, despite the fact that the starterlog suggests that it
should:
08/07/15 14:53:10 (pid:7952) Got SIGTERM. Performing graceful shutdown.
import os
import signal
import sys
import time
def cleanShutdown(signal, frame):
  Â'''A method to handle shutdowns. This is necessary to prevent the agent from
  Âhanging on a HTCondor shutdown, since the shutdown script sends SIGQUIT
  Âinstead of SIGTERM.'''
  Âprint 'Received signal %i, shutting down server' % signal
  Âsys.exit(0)
# Capture SIGINT and SIGQUIT
signal.signal(signal.SIGINT,cleanShutdown)
signal.signal(signal.SIGTERM,cleanShutdown)
if os.name != 'nt':
  Âsignal.signal(signal.SIGQUIT,cleanShutdown)
time.sleep(900)
_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting
https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users
The archives can be found at:
https://lists.cs.wisc.edu/archive/htcondor-users/