Voor mijn programma moet er een module geladen zijn in de kernel, eerst deed ik dit altijd als mijn programma gestart werd, maar nu wil ik controleren of deze al geladen is.
Dit is het stukje code dat ik geschreven heb:
modfile=open('/proc/modules', 'r')
modfile.readline()
modlist = []
for line in modfile:
modlist.append(line.split(' ')[0])
if 'mijnmodule' in modlist:
print "mijnmodule is al geladen."
else:
print "mijnmodule nog niet geladen."
os.system('sudo modprobe mijnmodule')
modfile.close()
mijnmodule is al geladen bij mij als mijn systeem start, als ik dan mijn programma draai krijg ik uiteraard te lezen dat de module al geladen is. Als ik even de module verwijder (modprobe -r mijnmodule) en dan mijn programma draai, krijg ik ook te lezen dat hij nog niet geladen is en na controleren (lsmod | grep mijnmodule) zie ik dat hij ze ook geladen heeft. Nochtans als ik hierna nog eens mijn programma opstart krijg ik weer te zien dat deze NIET geladen is, hoewel alles erop wijst dat het wel zo is. Zowel lsmod als cat /proc/modules geven dit aan, alleen mijn programma ziet het dus niet.
Hoe kan dit?