Я думаю, что у вас есть опечатка здесь, я сомневаюсь, что команда вернула "Как мне узнать, какой процесс потребляет мою пропускную способность?" ...;) Если бы вы могли отредактировать вопрос, пожалуйста?
8128
Ответы:
24
открыть терминал:
fuser -c /media/KINGSTON
Это выведет что-то вроде этого:
/media/KINGSTON/: 3106c 11086
Это даст вам pid процессов, использующих этот том. Дополнительный символ в конце pid даст дополнительную информацию. (c в 3106c)
c - процесс использует файл в качестве текущего рабочего каталога
m - файл отображается с помощью mmap
o - процесс использует его в качестве открытого файла
r - файл является корневым каталогом процесса
t - процесс обращается к файл как текстовый файл
у - этот файл является управляющим терминалом для процесса
Так что для размонтирования просто убейте эти пиды и попробуйте снова размонтировать
Я бы предложил сначала убить их без опции -9, чтобы дать этим приложениям возможность полностью завершить работу. И я бы предложил использовать ps <pid>вместо редактирования файлов в / proc, чтобы увидеть имя команды и аргументы.
Мариус Гедминас
Я следую вашей процедуре, чтобы найти процесс, это Тунар - Деймон. Там нет дополнительного персонажа, дающего дополнительную информацию. Я еще не убил его, я беспокоюсь о том, как это может повлиять на работу другого.
Гийом Котэ
7
Самый полезный инструмент - это lsof . Он показывает, какие файлы используются какими процессами. Если /media/KINGSTONэто точка монтирования (имя устройства также будет работать), следующая команда показывает все файлы, которые используются в этой точке монтирования:
lsof /media/KINGSTON
Если вы запустите эту команду как обычный пользователь, она покажет только ваши собственные процессы¹. Запустите, sudo lsof /media/KINGSTONчтобы увидеть все процессы пользователей.
Вывод из lsofвыглядит так:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh4 31421 gilles cwd DIR 8,1 4096 130498 /var/tmp
zsh4 31421 gilles txt REG 8,1 550804 821292 /bin/zsh4
zsh4 31421 gilles mem REG 8,1 55176 821326 /usr/lib/zsh/4.3.10/zsh/complist.so
zsh4 31421 gilles 12r REG 8,1 175224 822276 /usr/share/zsh/functions/Completion.zwc
В COMMANDстолбце отображается имя исполняемого файла программы, а в PIDстолбце - идентификатор процесса. NAMEКолонка показывает имя файла; Вы можете увидеть, был (deleted)ли файл удален во время открытия (когда файл удаляется, у него больше нет имени, но он все еще существует, пока последний процесс, использующий его, не закроет файл). USERдолжно быть само за себя. Другие столбцы здесь не имеют значения, за исключением, возможно, того FD, что показывает, как файл используется процессом:
cwd: текущий рабочий каталог
txt: исполняемый файл²
mem: отображенный в память файл (здесь, думайте об этом как об открытом файле)
число: фактический открытый файл; последующее письмо указывает на режим открытия, например, rдля чтения и wдля записи
Не существует никакого механического способа найти окно, в котором открыт файл (на самом деле это не технически значимо: если процесс имеет несколько окон, файл не имеет особой связи с тем или иным окном), ни даже какой-либо простой способ идентификации окно процесса (и, конечно, процесс не должен иметь никаких окон). Но обычно имени команды и имени файла достаточно, чтобы найти нарушителя и правильно закрыть файл.
Если вы не можете закрыть файл и просто хотите закончить все это, вы можете завершить процесс kill 31421(где 31421находится идентификатор процесса) или kill -HUP 31421(«повесить трубку»). Если обычное убийство не делает трюк, убить с крайним предубеждением: kill -KILL 31421.
Есть графический интерфейс для lsof, glsof , но он еще не совсем готов к прайм- тайму и пока не упакован для Ubuntu.
¹
Lsof может перечислить некоторую информацию о процессах других пользователей, но он не обнаруживает точку монтирования поэтому не буду их перечислять , если указать точку монтирования.
²
Исполняемый код часто называют текстом в обсуждениях исполняемых форматов.
Когда вы не уверены, Grep с кавычки , напримерgrep "media/KINGSTON"
Adam Matan
2
Между тем, команда fuser значительно улучшилась. Вы можете сделать всю работу с помощью одной команды:
$ sudo fuser -ickv /"mountpoint"
Где:
параметр kубивает оскорбительный процесс,
пока vзаранее показывает процесс и его пользователя
и iпросит вас подтвердить.
Если какой-то процесс сопротивляется, попробуйте еще раз с fuser -ickv -9(или, в более общем смысле, с -SIGNAL), который убивает самых упрямых.
Но вы всегда найдете какой-нибудь «бессмертный» процесс ...!
В этих случаях я недавно научился использовать
$ sudo umount --lazy --force <mountpoint>
последний ресурс, который до сих пор работал на меня каждый раз.
Ответы:
открыть терминал:
Это выведет что-то вроде этого:
Это даст вам pid процессов, использующих этот том. Дополнительный символ в конце pid даст дополнительную информацию. (c в 3106c)
c - процесс использует файл в качестве текущего рабочего каталога
m - файл отображается с помощью mmap
o - процесс использует его в качестве открытого файла
r - файл является корневым каталогом процесса
t - процесс обращается к файл как текстовый файл
у - этот файл является управляющим терминалом для процесса
Так что для размонтирования просто убейте эти пиды и попробуйте снова размонтировать
Примечание: чтобы узнать точное имя приложения этих пидов, вы можете использовать эту команду
Например :
cat /proc/11086/cmdline
это выведет что-то вроде ниже.
Надеюсь, это поможет
источник
ps <pid>
вместо редактирования файлов в / proc, чтобы увидеть имя команды и аргументы.Самый полезный инструмент - это lsof . Он показывает, какие файлы используются какими процессами. Если
/media/KINGSTON
это точка монтирования (имя устройства также будет работать), следующая команда показывает все файлы, которые используются в этой точке монтирования:Если вы запустите эту команду как обычный пользователь, она покажет только ваши собственные процессы¹. Запустите,
sudo lsof /media/KINGSTON
чтобы увидеть все процессы пользователей.Вывод из
lsof
выглядит так:В
COMMAND
столбце отображается имя исполняемого файла программы, а вPID
столбце - идентификатор процесса.NAME
Колонка показывает имя файла; Вы можете увидеть, был(deleted)
ли файл удален во время открытия (когда файл удаляется, у него больше нет имени, но он все еще существует, пока последний процесс, использующий его, не закроет файл).USER
должно быть само за себя. Другие столбцы здесь не имеют значения, за исключением, возможно, тогоFD
, что показывает, как файл используется процессом:cwd
: текущий рабочий каталогtxt
: исполняемый файл²mem
: отображенный в память файл (здесь, думайте об этом как об открытом файле)r
для чтения иw
для записиНе существует никакого механического способа найти окно, в котором открыт файл (на самом деле это не технически значимо: если процесс имеет несколько окон, файл не имеет особой связи с тем или иным окном), ни даже какой-либо простой способ идентификации окно процесса (и, конечно, процесс не должен иметь никаких окон). Но обычно имени команды и имени файла достаточно, чтобы найти нарушителя и правильно закрыть файл.
Если вы не можете закрыть файл и просто хотите закончить все это, вы можете завершить процесс
kill 31421
(где31421
находится идентификатор процесса) илиkill -HUP 31421
(«повесить трубку»). Если обычное убийство не делает трюк, убить с крайним предубеждением:kill -KILL 31421
.Есть графический интерфейс для lsof, glsof , но он еще не совсем готов к прайм- тайму и пока не упакован для Ubuntu.
¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но он не обнаруживает точку монтирования поэтому не буду их перечислять , если указать точку монтирования.
² Исполняемый код часто называют текстом в обсуждениях исполняемых форматов.
источник
Также это может помочь:
источник
grep "media/KINGSTON"
Между тем, команда fuser значительно улучшилась. Вы можете сделать всю работу с помощью одной команды:
Где:
k
убивает оскорбительный процесс,v
заранее показывает процесс и его пользователяi
просит вас подтвердить.Если какой-то процесс сопротивляется, попробуйте еще раз с
fuser -ickv -9
(или, в более общем смысле, с-SIGNAL
), который убивает самых упрямых.Но вы всегда найдете какой-нибудь «бессмертный» процесс ...!
В этих случаях я недавно научился использовать
последний ресурс, который до сих пор работал на меня каждый раз.
источник
vboxmanage
. -_-