Pour des besoins très très simples (notification d'évènements...) d'IPC, ne pas oublier les signaux utilisateur (SIGUSR1 et 2)!
Quand dans ma domotique j'ai voulu faire en sorte que le système d'alarme perso scripté dessus fasse sonner une liste de téléphones mobiles, ayant par ailleurs codé un service (en python) faisant du filtrage d'appel (recyclant un vieux modem 56k usb branché sur le RJ11 de la Livebox alors inutilisé, tous les téléphones utilisant sa base DECT intégrée), j'avais commencé à vouloir utiliser des tubes nommés et même codé un prototype en python.
Puis n'étant pas un programmeur système (mais plutôt très bas niveau en C/ASM) et n'ayant pas anticipé que ce serait un peu "too much", surtout que le côté alarme/domotique était scripté en Lua et la gestion du modem/filtre appel ou serait ajouté le côté liste de numéro à appeler en cas d'alarme était de son côté écrite en Python... En relisant ce dernier je passe sur l'accrochage d'un handler SIGINT tout ce qu'il y a de plus commun... et eurêka, j'ai alors repensé aux signaux utilisateur et tout est devenu bien plus simple!
Côté Lua, un os.execute de 'pkill -10 -f "python.*phoneFilter.py"&'
Côté service Python (nommé phoneFilter.py), juste accrocher le handler gérant la liste d'appels si alarme (sigusr1_handler) sur le SIGUSR1 (signal 10): signal.signal(signal.SIGUSR1, sigusr1_handler)
Et mon machin à filtrer les pubeux (d'un décroché/raccroché immédiat via le modem, sur blacklist de numéros individuels, préfixes d'allocation ARCEP, voir toute plage de numéros alloués à des opérateurs de VoIP s'étant révélés au fil des mois 100% chiants... et si pas en blacklist locale ni connu dans l'annuaire DECT de la Livebox, qui a alors le bon goût de remplir un nom dans le Caller ID, beautifulsoup interroge 2 services en ligne pour récupérer une classification... et l'ajouter a une blacklist locale pour le coup suivant) s'est vu ajouter simplement très simplement une fonctionnalité.
[^] # Re: Si je puis me permettre ...
Posté par lym . En réponse à la dépêche Oubliez les web services, utilisez des tubes nommés. Évalué à 4.
Pour des besoins très très simples (notification d'évènements...) d'IPC, ne pas oublier les signaux utilisateur (SIGUSR1 et 2)!
Quand dans ma domotique j'ai voulu faire en sorte que le système d'alarme perso scripté dessus fasse sonner une liste de téléphones mobiles, ayant par ailleurs codé un service (en python) faisant du filtrage d'appel (recyclant un vieux modem 56k usb branché sur le RJ11 de la Livebox alors inutilisé, tous les téléphones utilisant sa base DECT intégrée), j'avais commencé à vouloir utiliser des tubes nommés et même codé un prototype en python.
Puis n'étant pas un programmeur système (mais plutôt très bas niveau en C/ASM) et n'ayant pas anticipé que ce serait un peu "too much", surtout que le côté alarme/domotique était scripté en Lua et la gestion du modem/filtre appel ou serait ajouté le côté liste de numéro à appeler en cas d'alarme était de son côté écrite en Python... En relisant ce dernier je passe sur l'accrochage d'un handler SIGINT tout ce qu'il y a de plus commun... et eurêka, j'ai alors repensé aux signaux utilisateur et tout est devenu bien plus simple!
Côté Lua, un os.execute de 'pkill -10 -f "python.*phoneFilter.py"&'
Côté service Python (nommé phoneFilter.py), juste accrocher le handler gérant la liste d'appels si alarme (sigusr1_handler) sur le SIGUSR1 (signal 10): signal.signal(signal.SIGUSR1, sigusr1_handler)
Et mon machin à filtrer les pubeux (d'un décroché/raccroché immédiat via le modem, sur blacklist de numéros individuels, préfixes d'allocation ARCEP, voir toute plage de numéros alloués à des opérateurs de VoIP s'étant révélés au fil des mois 100% chiants... et si pas en blacklist locale ni connu dans l'annuaire DECT de la Livebox, qui a alors le bon goût de remplir un nom dans le Caller ID, beautifulsoup interroge 2 services en ligne pour récupérer une classification... et l'ajouter a une blacklist locale pour le coup suivant) s'est vu ajouter simplement très simplement une fonctionnalité.