Pagina 1 di 1

eseguire un nuovo processo da un LKM ?

Inviato: mer 8 ago 2012, 22:28
da mandrago
sapete come si può eseguire un nuovo processo da un modulo del kernel linux (dinamico ovviamente) ? io ho provato tramite l'api call_usermodehelper ma appena insmoddo il modulo mi freeza l'os e mi tocca riavviare... va bene anche se sapete un modo che mi spawni il processo con i privlegi di root in user mode basta che me lo faccia partire...

Re: eseguire un nuovo processo da un LKM ?

Inviato: lun 13 ago 2012, 16:57
da 414N
Non sono sicuro che sia una cosa sensata e, di consegueza, possibile.
Cosa dovresti fare di preciso con questo processo lanciato dall'interno del modulo?

Re: eseguire un nuovo processo da un LKM ?

Inviato: lun 13 ago 2012, 18:29
da masalapianta
mandrago ha scritto:sapete come si può eseguire un nuovo processo da un modulo del kernel linux (dinamico ovviamente) ? io ho provato tramite l'api call_usermodehelper ma appena insmoddo il modulo mi freeza l'os e mi tocca riavviare... va bene anche se sapete un modo che mi spawni il processo con i privlegi di root in user mode basta che me lo faccia partire...
non ho capito se vuoi creare un kernel thread o lanciare un processo in user space da un lkm; btw nel primo caso usa kthread_create() mentre, nel secondo, un modo è la kernel_execve() (che, tra l'altro, viene usata dal kernel per lanciare init al boot), comunque non vedo motivi validi per dover lanciare un processo (oltre ad init) in user space dal kernel, ci sono modi più puliti (usare procfs, sysfs, un dispositivo a caratteri, ecc.. per comunicare ad un demone in user space di lanciare questo o quel processo) per fare quello che vuoi fare (qualunque cosa sia).

P.S. che brutto tornare al lavoro dopo tre settimane di mare senza telefono, computer od altro :(

Re: eseguire un nuovo processo da un LKM ?

Inviato: ven 17 ago 2012, 17:56
da mandrago
Alla fine avevo già risolto da solo forkando il modulo ed eseguendo la exec nel processo figlio.
Per quanto riguarda il motivo è semplicemente perchè stavo studiando una guida sulla programmazione dei LKMs e allora mi sono cimentato in un modulo che in base a quale tasto veniva premuto lanciava un determinato programma...

Grazie comunque...