[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] Trapping condor_hold in Python scripts on Windows



Hello.

Sorry to be a bother (I am a Newbie).
But you said three world that interest me, Windows, Python, HTcondor.
I have resources for help you on anything like that, and I am a python developer.
Can you help start with HTcondor, and I will have a look to your problem.

I may have a way or two to reproduce SIGNAL for your script.
I am interested in testing the method too !

So can we work together on that, please ??

Thank you very much.
Best Regards.
Benjamin.



2015-08-10 18:00 GMT+02:00 John (TJ) Knoeller <johnkn@xxxxxxxxxxx>:
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/



--
LIPERE Benjamin
Le logis de paille
87270, Chaptelat
FRANCE
06 26 14 35 20
benjamin.lipere123@xxxxxxxxx