Newsgroup: it.comp.os.linux.development
Titolo: fare il logout ad un altro utente/consolle

Sto scrivendo uno script di shell e vorrei ad un certo punto fare il
logout ad un'altra consolle che non sia dove sta girando lo script.
Dovrei mandargli qualcosa corripondente al comando logout o exit. Lo
script gira sempre da root.
Caso reale: lo script gira da root sulla tty1. Voglio far fuori la
consolle tty2. Come si fa? 
(Se mi sono loggato sull'altra consolle ancora da root riesco a
killare il processo login, ma se mi sono loggato da utente questo
processo non esiste).
Le consolle nelle realtà di reti multiutente corripondono davvero ad
un'altra persona? Se si, Come potrebbe quindi l'admin sbattere fuori
qualcuno per suoi motivi? E se su un'altra consolle c'è davvero
un'altra persona loggata che lavora, se premo il solito alt-F2 ce
risultati ho? (Spero d essermi spiegato).
--
     Good luck!              
un...@softhome.net
     ADaM        
http://digilander.iol.it/unno2/
If debugging is the process of removing bugs,
then programming must be the process of putting them in.
(Dijkstra)

risultati ho? (Spero d essermi spiegato).
che quello, essendo sulla stessa tua sedia, appena ti vede avvicinare le
dita ad alt-F2, sulla stessa tastiera che sta usando lui, ti prende a
sberle.
Se cosi' non e', fatti vedere, che soffri di sdoppiamento della
personalita'.
Ciao.roberto
-- 
Save our planet!
Save wildlife;
For your E-MAIL use only recycled Bytes !!
roberto poggi  
rpo...@softhome.net

personalita'.
 
:-) Oddio, perchè questi omini in camice bianco mi vogliono far indossare questa camicia al contrario ?!? ;-)
ADaM (più che sdoppiato)


 che mi dici mi pare di no).
Certo. Il fatto che sia praticamente impossibile lavorare
contemporaneamente su due consoles differenti sullo stesso computer non
significa che l'OS sia a conoscenza di questa impossibilità :)
Ciao,
Fabio Alemagna

 wrote:
ciao adam :)
A> Caso reale: lo script gira da root sulla tty1. Voglio far fuori la
A> consolle tty2. Come si fa? 
dopo un po' di seghe mentali, dato che comandi del tipo
echo NUM | kill -9
non funzionano, e dato che dall'outup del `ps ax` non puoi sapere di quante
cifre e' il numero del processo che vuoi killare, ho appena trovato
questo:
kill -9 `ps ax | grep tty2 | grep bash | cut -b1`\
`ps ax | grep tty3 | grep bash | cut -b2`\
`ps ax | grep tty3 | grep bash | cut -b3`\
`ps ax | grep tty3 | grep bash | cut -b4`\
`ps ax | grep tty3 | grep bash | cut -b5`\
`ps ax | grep tty3 | grep bash | cut -b6`
e' un po' astruso ma funziona, e' garantito :)
ciao
fritz

:-) Oddio, perchè questi omini in camice bianco mi vogliono far indossare questa camicia al contrario ?!? ;-)
Non ti preoccupare, stai calmo, dagli retta, sono amici, stanno solo
prendendoti le misure per la cerimonia della settimana prossima, in cui
tu sei l'ospite d'onore, non vorrai presentarti indossando una volgare
camicia da supermarket, il minimo e' una bel capo di sartoria, fatto su
misura, all'ultima moda,.....


>puoi sempre uccidere la shell
Nel senso che killo il processo bash?!?
Se faccio kill -9 $(ps | grep bash | cut -b1-6) uccido la consolle
dove gira lo script. Altrimenti come si può fare a uccidere la shell
di un'altra consolle?
PS ot:
Dopo qualche mese di utilizzo di varie distribuzioni linux come
mandrake, suse e red hat ecco in un solo giorno due inspiegabili crash
di componenti fondamentali:
1) distribuzione corel su un pc che ho usato per qualche ora; apro una
nuova consolle, digito la pw sbagliandola, do invio per reinserirla e
il tutto va in segmentation fault nello stupore generale di chi stava
li vicino. Prova a riaprire una'ltra stessa cosa! Riavvio mestamente
:-(
2) Questo è successo sulla mia macchina con mandrake 6.1. 
root@localhost /]# find / -name libphp3.so
Unable to handle kernel paging request at virtual address 245c8b53
current->tss.cr3 = 00ad4000, %cr3 = 00ad4000
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c0125994>]
EFLAGS: 00010206
eax: 245c8b53   ebx: 0000402c   ecx: 00000305   edx: 245c8b53
esi: 00000400   edi: 0000402c   ebp: 00000305   esp: c10c1e78
ds: 0018   es: 0018   ss: 0018
Process find (pid: 954, process nr: 61, stackpage=c10c1000)
Stack: c01259cf 00000305 0000402c 00000400 c0125c3e 00000305 0000402c
00000400
       0000402c 00000040 c09e2330 00009580 00000000 c0125f5e 00000305
0000402c
       00000400 c0832bc0 c013bc1d 00000305 0000402c 00000400 c09e2330
c0212088
Call Trace: [<c01259cf>] [<c0125c3e>] [<c0125f5e>] [<c013bc1d>]
[<c0130a81>]
[<c0130be8>] [<c013c980>]
       [<c012af41>] [<c012b11c>] [<c012b204>] [<c0129352>]
[<c010905c>]
Code: 8b 00 39 5a 04 75 11 39 72 08 75 0c 66 39 4a 0c 75 06 89 d0
Segmentation fault


di un'altra consolle?
devi aggiungere dei parametri al ps, in modo che ti dia anche i processi
di un altro utente.
ad esempio ps aux ti dice vita, morte e miracoli di tutti i processi in
giro.
Ovviamente, man ps per i dettagli dei flag.
Ancora piu' ovviamente, devi essere root per fare cio'.




Dato:
ps waux
root       783  0.0  3.4  1768  1080   1 S    Apr 24   0:00 -bash
posso pensare a:
kill -9 $( ps waux | tr -s " \t" "|" | grep "^.*|.*|.*|.*|.*|.*|2|" \
	| cut -f2 -d'|' )
Leonardo
".signature": bad command or file name

 ha scritto:

E' capitato anche a me; crashava tutto quando entravo in /dev e cercavo
di vedere il contenuto.
L'unica soluzione che ho trovato e' stata quella di frami una /dev nuova di
zecca, ma non ho ancora capito a cosa fosse dovuto il problema.
Avete qualche idea?
ciao
Kronos
-- 
Home: 
http://kronoz.tsx.org
ICQ-UIN: 69071547
Tentare e' il primo passo verso il fallimento.
Homer J. Simpson

mondo, se collegato alla tua rete.
Ecco risolti tutti i miei dubbi: era quella "p" di ttyp che ha risolto
tutto: grazie!


e' un po' astruso ma funziona, e' garantito :)
A quanto pare questa soluzione è più breve ;-)
fuser -k /dev/ttyN


>e' un po' astruso ma funziona, e' garantito :)
ho visto solo dopo che potevo fare 
 kill -9 `ps ax | grep tty2 | grep bash | cut -b1-6`
1 riga invece di 6
:))
LS> Dato:
LS> ps waux
LS> root       783  0.0  3.4  1768  1080   1 S    Apr 24   0:00 -bash
LS> posso pensare a:
LS> kill -9 $( ps waux | tr -s " \t" "|" | grep "^.*|.*|.*|.*|.*|.*|2|" \
LS> 	| cut -f2 -d'|' )
carino "tr", non lo conoscevo, ma e' molto utile in questi casi
Una cosa: non e' che dovrebbe esserci |tty2| al posto di |2| ?
Cosi' mi funziona, altrimenti no, dipende dalla versione di ps?
Altra cosa: perche' hai usato $(...) invece di `...` ?
LS> Leonardo
ciao
fritz

 wrote:
A> A quanto pare questa soluzione è più breve ;-)
A> fuser -k /dev/ttyN
si ma non e' bella come potrebbe essere una linea di script bash :-)
ciao
fritz