Portál AbcLinuxu, 14. června 2025 05:02
Pokud chcete odpojit diskový oddíl, ale dostáváte chybové hlášení, že je zaneprázdněn, je tomu tak proto, že s ním nějaký program právě pracuje.
Ke zjištění o které programy jde můžete využít nástroje fuser
nebo lsof
.
Máme připojený usb flash disk (zařízení /dev/sda1
) do adresáře /flash
. Pokud se pokusíme zařízení odpojit, dostaneme chybovou hlášku:
# umount /flash umount: /flash: device is busy umount: /flash: device is busy
Pro zjištění programu, který zařízení používá můžeme využít příkaz fuser
.
# fuser /flash /flash: 9369c
S adresářem pracuje program s PID 9369. Pro zjištění podrobností lze použít příkaz ps
.
# ps -ax |grep 9369 9369 pts/3 Ss+ 0:00 bash
Se zařízením pracuje program bash. Můžeme ho tedy ukončit. Buďto ukončíme program obvyklým způsobem, nebo použijeme příkaz kill
.
# kill 9369
Konkrétně bash ale signál SIGTERM
, který posílá příkaz kill
standardně, ignoruje. K ukončení je v tomoto případě třeba poslat signál SIGHUP
, což zajistí parametr -1
:
# kill -1 9369
Nyní je možné zařízení odpojit.
Případně je možné použít přímo příkaz fuser
, který zašle blokujícímu procesu SIGKILL
(pozor jedná se o velmi nešetrný způsob ukončení programu - například nedojde k uložení dat).
# fuser -k /flash
Jistí to parametr -i
, který se vás (pokud je spolu s -k
, jinak nemá význam) nejdříve zeptá.
# fuser -ik /flash
Dokument vytvořil: Leoš Literák, 27.7.2005 09:51 | Poslední úprava: Marble, 22.2.2007 16:32 | Další přispěvatelé: David Watzke, Michal Vyskočil | Historie změn | Zobrazeno: 1709×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.