Récuprerer un processus mis en pause - Python - Programmation
Marsh Posté le 27-02-2011 à 16:26:11
serial_xp a écrit : Voila, étant a la fac et débutant en python, nous sommes entrain de travailler sur les processus. Cependant, malgré pas mal d'heures passées sur le net, je ne comprends toujours pas comment la librairie "signal" fonctionne. |
La librairie "signal" implémente les signaux bas niveau UNIX (cf man signal).
La fonction principale est signal.signal, qui prend un identifiant de signal (e.g. SIGBUS, SIGQUIT, SIGKILL, ... là encore cf man signal, les signaux disponibles sous Windows sont plus restreints et indiqués dans la doc du module) et un handler (un callable Python). Lorsque le processus reçoit le signal idoine (depuis un processus tiers, comme le shell, habituellement), le handler est appelé.
Signal contient également quelques fonctions tierces pour des fonctionnalités fréquemment intéressantes, histoire de ne pas avoir à les réimplémenter à la main.
cf http://blog.doughellmann.com/2008/ [...] ignal.html pour plus de doc.
serial_xp a écrit : En effet, j'ai un processus "mis en attente" grâce a signal.pause() mais je comprends comment l'on récupère le signal du processus afin de le relancer... |
Via signal.signal, signal.pause() sert juste à "faire hiberner" le processus histoire de limiter sa consommation, avant que le processus ne soit réveillé (et que l'exécution recommence à l'endroit où elle a été mise en pause), le signal handler (enregistré via signal.signal) s'exécute.
Cf man pause.
Note: selon les unix, pause et signal peuvent être des system calls (man 2) ou des appels libc (man 3). Apparemment c'est un syscall sous Linux, et une fonction normale sous BSD (et OSX).
Marsh Posté le 04-03-2011 à 18:21:21
Ok merci pour ton explication. Je vais de suite lire ton lien.
Marsh Posté le 22-02-2011 à 22:12:58
Bonsoir a tous,
je me tourne vers vous car malgré mes recherches, je ne trouve trouve pas la réponse.
Voila, étant a la fac et débutant en python, nous sommes entrain de travailler sur les processus. Cependant, malgré pas mal d'heures passées sur le net, je ne comprends toujours pas comment la librairie "signal" fonctionne.
En effet, j'ai un processus "mis en attente" grâce a signal.pause() mais je comprends comment l'on récupère le signal du processus afin de le relancer...
Si une âme charitable pourrait m'expliquer ou me donner des pistes . Merci d'avance pour vos réponses.