Portál AbcLinuxu, 9. ledna 2026 16:21
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: 1832×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.