Bonjour,
Je suis en train d’écrire un petit programme qui doit contrôler les ventilos de ma carte graphique1. Pour ce faire, je dois d’abord dire au driver de la carte que je veux contrôler les ventilos manuellement. Pour éviter de me retrouver dans une situation où mon programme crash/se ferme après avoir arrêté tous les ventilos2, je voudrais m’assurer de remettre les ventilos en contrôle automatique si le programme se termine.
A priori, c’est quelque chose qui peut se faire directement au sein du programme en utilisant std::atexit
(pour les arrêts normaux) et std::signal
(dans le cas où le programme est forcé de se terminer). Cependant, il y a certains cas où le programme n’a pas la possibilité de faire tourner de code du tout (par exemple s’il se reçoit un SIGKILL). Est-ce que ce genre d’événement peut arriver dans un autre cas que si l’utilisateur envoi lui-même le SIGKILL?
Une autre solution serait d’exécuter le programme dans un script bash qui devra s’occuper de redonner le contrôle des ventilos si le contrôleur s’arrête. Cependant, ça ne protège pas plus d’un SIGKILL involontaire que la solution précédente.
Est-ce qu’il y a une autre solution qui serait plus simple ou plus robuste?