Newsgroup: it.comp.os.linux.iniziare
Titolo: script in loop e shutdown impossibile

La situazione ï¿œ questa: un utente avvia sulla macchina uno
script bash che esegue un certo comando in loop (nella mia fattispecie,
riproduce un filmato all'infinito).
Io, come root, non riesco a fare lo shutdown della macchina perchï¿œ
quando tenta di fermare il processo del player, se ne apre subito
un altro.
In sostanza, io digito
$ sudo shutdown -hP now
e compare il messaggio "System is going for HALT now", ma non
succede un bel niente: il sistema continua a funzionare e il player
viene riavviato di continuo (lo vedo da top)
Quindi un utente puï¿œ "tenere in ostaggio" la macchina? Cosa mi sfugge?
m.
 
 
-- 
"La legge, in Italia, ï¿œ come l'onore delle puttane"
(Curzio Malaparte)

 m.
 
hai provato a uccidere il processo legato a quello script e poi a fare 
lo shutdown?
 
 
-- 
Pandozy vede tutto
     _   _
   O'|,=,/'O
     (0 0)
ooO--(_)--Ooo

Addi' 28 mag 2013, ivan_terzo scrive:

Ma scusate lo shutdown killa /qualsiasi/ processo, puo' essere che e'
diverso se dato con sudo da quando e' dato da root? (Lo chiedo perche'
io sudo non lo conosco).
 
-- 
Tanti saluti
 


bah! da quello che m'è sembrato d'aver capito, mi sembra evidente che 
sia proprio quel processo a impedire lo spegnimento della macchina. Quel 
tentativo voleva solo essere la prova del nove tutto qui... :-\
 
Non conosco quello script, forse non è stato scritto con tutti i santi e 
dovuti criteri (magari non è stata prevista nessuna condizione per 
interromperlo che so... tramite un "break statement" o qualcosa del genere)


 genere)
 
Sì, nel caso specifico lo script non prevede l'interruzione... ma questo
significa che potenzialmente un qualsiasi script, intenzionalmente 
malevolo oppure semplicemente mal progettato, possa di fatto impedire
lo spegnimento della macchina.
Che succede ad esempio se lancio lo script A, che a sua volta lancia
lo script B, che a sua volta rilancia lo script A e così via in loop?
m.


ma hai provato a "uccidere" il processo e poi a fare lo shutdown? Perché 
credo che sia inutile rimuginare su ipotesi e teorie se prima non si 
fanno semplici prove come quella che ho proposto (che non è nulla di 
eccezionale comunque).
 
Anche perché non vedo che due possibilità:
 
  1- terminato quel processo la macchina si spegne come dovrebbe. Occorre
     quindi stabilire perché quello script agisce in quel modo (per
     esempio occupa troppe risorse? Magari la macchina si spegne dopo 20
     minuti ecc...);
  2- anche terminando quel processo la macchina continua a non eseguire
     lo shutdown. Le cause vanno ricercate quindi altrove (servizi
     impegnati in altre cose ecc...)
 
Quindi, fai la prova e poi vediamo cosa accade. Hai provato lanciare da 
shell il comando "top"?


 eccezionale comunque).
 
Sì, succede che se killo lo script A, lo script B lo riavvia subito 
dopo, e viceversa.
E non riesco a capire come killarli entrambi nello stesso momento,
poiché a quanto ho capito l'esecuzione non è perfettamente "sincrona".
Se introduco una condizione per stoppare l'iterazione, allora lo
shutdown avviene regolarmente.
m.
 
 
-- 
"La legge, in Italia, è come l'onore delle puttane"
(Curzio Malaparte)


Che succede con?
 
killall ScriptA; killall ScriptB