eseguire un nuovo processo da un LKM ?

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
mandrago
Linux 0.x
Linux 0.x
Messaggi: 30
Iscritto il: ven 30 mar 2012, 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4

eseguire un nuovo processo da un LKM ?

Messaggio 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...

Avatar utente
414N
Iper Master
Iper Master
Messaggi: 2922
Iscritto il: mer 13 feb 2008, 16:19
Slackware: 15.0
Kernel: 5.15.19
Desktop: KDE5
Località: Bulagna
Contatta:

Re: eseguire un nuovo processo da un LKM ?

Messaggio 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?

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: eseguire un nuovo processo da un LKM ?

Messaggio 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 :(

mandrago
Linux 0.x
Linux 0.x
Messaggi: 30
Iscritto il: ven 30 mar 2012, 18:13
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4

Re: eseguire un nuovo processo da un LKM ?

Messaggio 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...

Rispondi