View Full Version : Help signusr1
IspiCiosa
27-05-2006, 10:03
Salve ragazzi..
allora devo fare uno script bash che deve far partire un programa fatto in C che va a costruirsi un disco virtuale....
allora per partire ok...
ma per "spegnerlo" dovrei mandargli un segnale tipo signusr1 se nn sbaglio...
chi mi da una mano??
come faccio a mandargli sto segnale ??
scusatemi se magari dico cavolate....
devo salvare il pid giusto?
echo "$!" > $id_file;;
facendo pero pid=$(cat $id_file)
kill -sigint $pid
nn succede niente...
allora il mio collega che fatto l'altro file c ha fatto in modo che quando riceve il segnale sigusr1 si "disattiva" con close ecc ecc....
cosa devo fare?
come gli invio il segnale?
lascio perdere kill?
allora il mio collega che fatto l'altro file c ha fatto in modo che quando riceve il segnale sigusr1 si "disattiva" con close ecc ecc....
cosa devo fare?
come gli invio il segnale?
lascio perdere kill?kill -sigusr1 $pid
IspiCiosa
31-05-2006, 13:30
ciao mi servirebbe un ulteriore aiuto...
allora quello che stimo facnedo è un progetto fatto in script bash e in C...
consiste in un disco virtuale cui l'attivazione e disattivazione deve essere controllato da un processo gestore che ho fatto e si chiama VD....su questo disco devono poter essere effetuate delle operazioni da e verso il disco virtulale per esempio:
cp casa.txt VD:/casa/casa.txt
rm VD:/casa/casa.txt ecc ecc
spero di avermi fatto capire.....
qualcuno mi da un consiglio su come potrei fare questa cosa in bash?
cioè sono in alto mare e nn so come fare per se ce la stringa VD va ad operare nel disco virtuale....
grazie per chi mi aiuta!!
IspiCiosa
01-06-2006, 23:01
nessuno mi aiuta??
ce qualcosa che nn capite?
IspiCiosa
02-06-2006, 18:56
help me please
ciao mi servirebbe un ulteriore aiuto...
allora quello che stimo facnedo è un progetto fatto in script bash e in C...
consiste in un disco virtuale cui l'attivazione e disattivazione deve essere controllato da un processo gestore che ho fatto e si chiama VD....su questo disco devono poter essere effetuate delle operazioni da e verso il disco virtulale per esempio:
cp casa.txt VD:/casa/casa.txt
rm VD:/casa/casa.txt ecc eccQuindi se ho capito bene ... vorresti che "VD:" sia riconosciuto e utilizzabile da qualunque comando??? Non credo che sia fattibile ... e non con quella sintassi VD:/path/...
L'unica cosa che mi viene in mente è quella di realizzare un device-driver in modo da creare un "block device" che una volta montato nel sistema sia visibile su un certo mount-point.
Non è comunque una cosa così banale da realizzare!
IspiCiosa
03-06-2006, 11:30
guarda se hai un po di pazienza queste sono le slide del progetto...
www.dsi.unive.it/~lso/ProgettoHTML/progetto.html
sono poche...
dalla slide 12 è quelo che intendo io....
grazie per gli aiuti......
Da quello che posso capire, potresti creare degli script con il nome del comando
(cp, rm, del, ecc.), modificando PATH in modo che vengano eseguiti per primi,
e tali che se non c'è VD: tra gli argomenti, 'passano' la chiamata all'eventuale
comando di sistema.
guarda se hai un po di pazienza queste sono le slide del progetto...
www.dsi.unive.it/~lso/ProgettoHTML/progetto.html
sono poche...
dalla slide 12 è quelo che intendo io....
grazie per gli aiuti......Ciao, stavo leggendo quelle slide ...
Vediamo se ho capito bene:
- Il "gestore" è sviluppato in "C" e gira in background (può essere avviato/stoppato).
- La comunicazione con il gestore la puoi sviluppare come vuoi.
Viene mostrato un esempio di sessione:
vd start
cp /home/rossi VD:/pippo
mkdir VD:/base
ecc...
Ma quei comandi cp, mkdir, ecc... sono e devono essere quelli di sistema???
IspiCiosa
03-06-2006, 14:52
ciao
allora il gestore io lo fatto in bash nn è altro che un file bash con un case che se ce la stringa start fa partire il file eseguibile che mi va a creare il disco virtuale(i-node ecc ecc) se ce stop fa kill del pid...
se leggi la slide 16 vedi che
1- se nn ce la stringa VD chiamo il comando normale del sistema..
2- se ce la stringa vd va a chiamare il comando corrispondente che sara su un file .c.....
ma come faccio a vedere se ce o no la stringa vd??
IspiCiosa
04-06-2006, 10:38
up
Ciao, una soluzione al tuo problema può essere quella spiegata bene da Qu@ker. In pratica "rimpiazzare" i comandi di sistema con i tuoi e poi verificare se tra gli argomenti c'è un VD: per sapere se richiamare il comando di sistema oppure il tuo.
Il problema quindi sarebbe quello di verificare se tra gli argomenti c'è un parametro che inizia con "VD:". Si può fare tranquillamente in uno script bash (ovviamente anche in "C", se si volesse). Esempio:
#!/bin/bash
VD=0
for ARG in $*
do
ARG_S=${ARG:0:3}
if [ "$ARG_S" = "VD:" ]; then VD=1; fi
done
if [ $VD -eq 1 ]; then
echo "usa comando speciale per vd"
else
echo "usa comando standard di sistema"
fi
IspiCiosa
04-06-2006, 14:59
scusa
ma quindi dovrei fare un file bash per ogni comndo tipo
cp.bash
rm.bash ecc ecc??
nn posso creare un unico file bash che poi i arrngia con qualsiasi comando verrà eseguito??
scusa
ma quindi dovrei fare un file bash per ogni comndo tipo
cp.bash
rm.bash ecc ecc??
nn posso creare un unico file bash che poi i arrngia con qualsiasi comando verrà eseguito??Perché .. non va bene??
Nella slide si vede l'esempio:
$ cp /home/rossi VD:/pippo
Quindi credo che si richieda di realizzare proprio un comando 'cp' che si comporta come quello standard ma con in più, in modo trasparente, il supporto per quello specificatore VD:
Altrimenti sarebbe, credo, banale: ti crei per esempio un unico eseguibile in "C" chiamato 'vdfuncs' in cui gestisci i vari rm, cp, ecc...
IspiCiosa
04-06-2006, 21:13
no "deve" essere fato in bash...
quindi dici che devo pr forza farlo in piu file...
ok allora faro cosi...
pero i comandi da eseguire in casoci fosse VD sono fatti in C in un unico file
con piu funzioni come faccio a dirgli usa quella funzione e nn l'altra ad esempio??
grazie escusami se faccio domande idiote ma nn sono molto pratico...
no "deve" essere fato in bash...L'avevo capito ...
quindi dici che devo pr forza farlo in piu file...Io ho capito così dalla slide.
pero i comandi da eseguire in casoci fosse VD sono fatti in C in un unico file
con piu funzioni come faccio a dirgli usa quella funzione e nn l'altra ad esempio??Al programma "C" passi il 1° parametro che indica sempre il comando da eseguire es. "cp", "rm", ecc...
IspiCiosa
05-06-2006, 16:33
Al programma "C" passi il 1° parametro che indica sempre il comando da eseguire es. "cp", "rm", ecc...
cme è che faccio per passarglielo??
IspiCiosa
05-06-2006, 16:58
cosa fa di preciso questo?
ARG_S=${ARG:0:3}
if [ "$ARG_S" = "VD:" ]; then VD=1; fi
cme è che faccio per passarglielo??progvd cp /pippo VD:/pluto
dove progvd è il programma "C" che gestisce tutti i comandi.
cosa fa di preciso questo?ARG_S=${ARG:0:3}
prende i primi 3 caratteri di $ARG e li mette in $ARG_S
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.