Pagina 1 di 1

KDE eject modificato [Tips]

Inviato: gio 26 apr 2007, 0:12
da iobondo
Per quelli che come me usano kde senza l'automount, sara capitato spesso montando un cd e dopo aver usato vari programmi e/o aperto shell da konqueror con file dello stesso, di non riuscire più ad espellere il CD :evil:

A me capita 1 volta su 2, ogni volta mi tocca cercare l'applicazione che mi occupa il device.

Allora ho pensato che si potesse fare qualcosa di più pratico con il mio caro linux,
ecco allora che ho modificato /opt/kde/bin/kdeeject che altro non è che uno script

Codice: Seleziona tutto

#!/bin/sh
# Script used by kdesktop to eject a removable media (CDROM/Tape/SCSI/Floppy)
# Relies on the 'eject' program, 'cdcontrol' on *BSD
#
# Copyright GPL v2 by David Faure <david@mandrakesoft.com>
#
if test $# -ge 1 -a "$1" != "--help"; then
  quiet=0
  if test "$1" = "-q"; then
    quiet=1
    shift
  fi
  # 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 test $? -eq 0; then
    dcop kdesktop default refreshIcons
    exit 0
  elif test $quiet -eq 0; then
    kdialog --title "KDE Eject" --warningyesno "Eject $1 failed ! \n (se scegli si sappi che causerà la chiusura del programma/i \n che occupa/ano il device) \n Vuoi forzare l'azione ? "
    if test $? -eq 0; then
      kill `lsof -t $1`
      kdeeject $1
    fi
  fi
else
  kdialog --title "KDE Eject" --msgbox "Usage: $0 <name> where name is a device or a mountpoint."
fi
exit 1
In pratica quando cliccando su eject del device e lo stesso fallisce causa il device occupato, anziche produrre solamente un warning, come è solito fare, chiederà se si vuole forzare l'azione o no.
se si decide di forzare l'azione (if test $? -eq 0) allora contrillo i processi che occupano il device e li killo (kill `lsof -t $1`) :idea:
Un pò brutale ma efficace ;)

Se può essere utile bene ... altimenti insultate pure :roll:

Inviato: gio 26 apr 2007, 11:16
da sir_alex
Placet, peraltro penso sia simile a quanto fa ora k3b, che se trova il device occupato ti chiede di distruggere democraticamente il programma che lo blocca... :D

Inviato: gio 26 apr 2007, 21:26
da goldy
Utile , io spesso sono costretto a killare kio_media o kio_cdaudio per far uscire il cd.
Adesso provo con la tua modifica.
Grazie

Inviato: gio 26 apr 2007, 23:18
da nicop
sir_alex ha scritto:Placet, peraltro penso sia simile a quanto fa ora k3b, che se trova il device occupato ti chiede di distruggere democraticamente il programma che lo blocca... :D
capitato anche a me....dovevo formattare il dvd rescrivibile e mi diceva device occupato!!!ho smontato il device e tutto è tornato apposto!!!