Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Controleer geladen modules met Python  (gelezen 1411 keer)

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Controleer geladen modules met Python
« Gepost op: 2008/07/23, 11:59:43 »
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?

Offline Nunslaughter

  • Lid
    • timovwb
  • Steunpunt: Nee
Controleer geladen modules met Python
« Reactie #1 Gepost op: 2008/07/23, 17:17:44 »
Ik denk dat het opgelost is, tot nu werkt het toch perfect.
Ik heb de regel "modfile.readline()" weggehaald. Als ik de module laadde kwam deze bovenaan in /proc/modules te staan, en door bovenstaande regel werd deze regel blijkbaar eerst ingelezen en daarna niet meer gezien door de for-loop.