5 votes

OSError lors de la définition du gestionnaire SIGKILL sous mac os et python

Bonjour, j'essaie de mettre en place un signal de gestion de SIGKILL avec l'application python. signal mais on obtient une exception OSError.

Python : 3.7.5

Système d'exploitation : MacOS Mojave

class MyClass:
    def __init__(self, *args, **kwargs):
        signal.signal(signal.SIGKILL, self.gracefull_shutdown)
        signal.signal(signal.SIGTERM, self.gracefull_shutdown)

    def gracefull_shutdown(self, signum, frame):
        # gracefull_shutdown code here

ce qui me donne le résultat suivant

signal.signal(signal.SIGKILL, self.gracefull_shutdown)
  File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/signal.py", line 47, in signal
    handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
OSError: [Errno 22] Invalid argument

La gestion des SIGTERM fonctionne (en commentant le fichier SIGKILL handler). J'ai lu que MacOS supporte SIGKILL, n'est-ce pas ?

4voto

HQW.ang Points 85

Desde el man 7 signal il est dit

Les signaux SIGKILL et SIGSTOP ne peuvent pas être attrapés, bloqués ou ignorés.

Et veuillez également vous référer à comment gérer le signal os.system sigkill dans python ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X