[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problema cdrom



On Thu, 03 Mar 2005 20:29:58 +0100, Cristian Versari
<cversari@csr.unibo.it> wrote:
> Cristian Versari ha scritto:
> > kill -9 `lsof -n /dev/hdc | awk '{ print $2 }' | sort -u` ;
> > eject /dev/hdc
> 

Ho guardato l'output di "lsof -n /dev/hdc" e, se non ho capito
male è quel processo che rompe le balle e trattiene il device.
Ho notato però che dopo un po' quel processo viene comunque 
killato; mi viene da pensare che la tua soluzione sia utile
quando uno fa l'unmount e si accorge che ci vogliono
ancora una trentina di secondi (questo nel mio caso!)
prima che lo user possa vedere il suo cd sputato indietro
(il problema si verifica sia tramite comando "eject" sia
tramite bottoncino sul dispositivo bottoncino).

In realtà penso che il problema del thread-starter è un po'
diverso: vorrebbe espellere il cd tramite menu-popup di kde,
che utilizza lo script /usr/bin/kdeeject. Penso che sia li 
l'inghippo. Gia con kde 3.2 dava dei problemi:
http://www.cancermeeting.it/mess_312376_1257210.html

A testimonianza del fatto che i miei dubbi sono fondati,
dopo aver eseguito l'unmount e aver killato il processo
come dici tu, ho provato a dare da terminale "kdeeject /cdrom"
ed è spuntato fuori llo stesso kdialog con il msg di errore.

Il problema è in quello script o chissaddove!
Visto che lo script è cortissimo e io sono un ignorantone di
script di shell e di molte altre cose, vi posto lo script /usr/bin/kdeeject...
magari qualcuno vede al volo qualcosa che non va.
----------
if [ $# = 1 -a "$1" != "--help" ]; then
  # Checking for stuff in the PATH is ugly with sh.
  # I guess this is the reason for making this a kde app...
  OS=`uname -s`
  case "$OS" in
    OpenBSD)
      cdio -f $1 eject >/dev/null 2>&1
      ;;
    *BSD)
      dev=`echo $1 | sed -E -e 's#/dev/##' -e 's/([0-9])./\1/'`
      cdcontrol -f $dev eject >/dev/null 2>&1
      ;;
    *)
      eject $1 >/dev/null 2>&1
      ;;
  esac
  if [ $? = 0 ]; then
    dcop kdesktop default refreshIcons
    exit 0
  else
    # QUESTO E' IL DIALOG IN QUESTIONE !!!
    kdialog --title "KDE Eject" --error "Eject $1 failed!"  
  fi
else
  kdialog --title "KDE Eject" --msgbox "Usage: $0 <name> where name is
a device or a mountpoint."
fi
exit 1
----------

Il comando 'uname -s' restituisce "Linux", quindi lo switch dovrebbe
matchare il terzo caso e sputare fuori il cd, ma questo non 
avviene.

   Paolo



Reply to: