Repository 32bit  Forum
Repository 64bit  Wiki

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.

eseguire un nuovo processo da un LKM ?

Messaggioda mandrago » mer ago 08, 2012 21:28

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...
mandrago
Linux 1.0
Linux 1.0
 
Messaggi: 30
Iscritto il: ven mar 30, 2012 17:13
Località: Arco (Trento)
Nome Cognome: Daniel
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4

Re: eseguire un nuovo processo da un LKM ?

Messaggioda 414N » lun ago 13, 2012 15:57

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
414N
Iper Master
Iper Master
 
Messaggi: 2881
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: eseguire un nuovo processo da un LKM ?

Messaggioda masalapianta » lun ago 13, 2012 17:29

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 :(
Avatar utente
masalapianta
Iper Master
Iper Master
 
Messaggi: 2775
Iscritto il: dom lug 24, 2005 23:00
Località: Roma
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian

Re: eseguire un nuovo processo da un LKM ?

Messaggioda mandrago » ven ago 17, 2012 16:56

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...
mandrago
Linux 1.0
Linux 1.0
 
Messaggi: 30
Iscritto il: ven mar 30, 2012 17:13
Località: Arco (Trento)
Nome Cognome: Daniel
Slackware: 13.37
Kernel: 3.0.4
Desktop: XFCE4


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti