Как узнать, какой процесс предотвращает umount?

на самом деле приложения для Android, доступные на рынке и в игровом магазине, предназначены для процессоров с архитектурой рук и, таким образом, то, что пытается сделать ur, никогда не будет работать почти для любого другого приложения, которое вы пытаетесь установить на компьютер ..........

, кстати, вы можете найти сайт в Google, выполнив поиск «портирования андроида на x86». Это даст u android 4.2 для андроидов froy roms для автономной установки ur pc, и я попробовал их и почти 99% программного обеспечения либо отказался от установки или отказался запускать после завершения установки в любом случае ...

, поэтому основное различие - x86 против серии рук ........... и до тех пор, пока мы не сможем практически обеспечить arm architechture для android мы не можем что-то делать.

22
задан 6 November 2010 в 23:05

40 ответов

открыть терминал:

fuser -c /media/KINGSTON

Он выведет что-то вроде этого:

/media/KINGSTON/: 3106c 11086

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл в качестве текущего рабочего каталога m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

sudo kill -9 3106 11086
sudo umount /media/KINGSTON

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

cat /proc/<pid>/cmdline

Например: cat /proc/11086/cmdline

это будет выводиться что-то вроде ниже.

    evince^@/media/KINGSTON/Ubuntu-guide.pdf^@

Надеюсь, это поможет

20
ответ дан 26 May 2018 в 00:34
  • 1
    fuser -ck также убьет его. – João Pinto 6 November 2010 в 12:05
  • 2
    Я бы предложил убить их без опции -9, чтобы дать этим приложениям возможность полностью отключиться. И я бы предложил использовать ps <pid> вместо редактирования файлов в / proc, чтобы увидеть имя и аргументы команды. – Marius Gedminas 6 November 2010 в 18:55
  • 3
    Я следую вашей процедуре, чтобы найти этот процесс, это Thunar - deamon. Нет лишних символов, дающих дополнительную информацию. Я еще не убил его, я беспокоюсь о том, какое влияние он может оказать на работу. – Guillaume Coté 6 November 2010 в 22:53

открыть терминал:

fuser -c /media/KINGSTON

Он выведет что-то вроде этого:

/media/KINGSTON/: 3106c 11086

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл в качестве текущего рабочего каталога m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

sudo kill -9 3106 11086 sudo umount /media/KINGSTON

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

cat /proc/<pid>/cmdline

Например: cat /proc/11086/cmdline

это будет выводиться что-то вроде ниже.

evince^@/media/KINGSTON/Ubuntu-guide.pdf^@

Надеюсь, это поможет

21
ответ дан 25 July 2018 в 22:56

открыть терминал:

fuser -c /media/KINGSTON

Он выведет что-то вроде этого:

/media/KINGSTON/: 3106c 11086

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл в качестве текущего рабочего каталога m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

sudo kill -9 3106 11086 sudo umount /media/KINGSTON

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

cat /proc/<pid>/cmdline

Например: cat /proc/11086/cmdline

это будет выводиться что-то вроде ниже.

evince^@/media/KINGSTON/Ubuntu-guide.pdf^@

Надеюсь, это поможет

21
ответ дан 27 July 2018 в 01:32

открыть терминал:

fuser -c /media/KINGSTON

Он выведет что-то вроде этого:

/media/KINGSTON/: 3106c 11086

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл в качестве текущего рабочего каталога m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

sudo kill -9 3106 11086 sudo umount /media/KINGSTON

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

cat /proc/<pid>/cmdline

Например: cat /proc/11086/cmdline

это будет выводиться что-то вроде ниже.

evince^@/media/KINGSTON/Ubuntu-guide.pdf^@

Надеюсь, это поможет

21
ответ дан 31 July 2018 в 10:34

открыть терминал:

fuser -c /media/KINGSTON

Он выведет что-то вроде этого:

/media/KINGSTON/: 3106c 11086

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл в качестве текущего рабочего каталога m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

sudo kill -9 3106 11086 sudo umount /media/KINGSTON

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

cat /proc/<pid>/cmdline

Например: cat /proc/11086/cmdline

это будет выводиться что-то вроде ниже.

evince^@/media/KINGSTON/Ubuntu-guide.pdf^@

Надеюсь, это поможет

21
ответ дан 31 July 2018 в 11:37

открыть терминал:

fuser -c /media/KINGSTON

Он выведет что-то вроде этого:

/media/KINGSTON/: 3106c 11086

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл в качестве текущего рабочего каталога m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

sudo kill -9 3106 11086 sudo umount /media/KINGSTON

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

cat /proc/<pid>/cmdline

Например: cat /proc/11086/cmdline

это будет выводиться что-то вроде ниже.

evince^@/media/KINGSTON/Ubuntu-guide.pdf^@

Надеюсь, это поможет

21
ответ дан 2 August 2018 в 04:19

открыть терминал:

  fuser -c / media / KINGSTON  

Он выведет что-то вроде этого:

  / media / KINGSTON /: 3106c 11086  

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл как текущий рабочий каталог m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

  sudo kill -9 3106 11086 sudo umount / media / KINGSTON  

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

  cat / proc / & lt; pid & gt; / cmdline  

Например: cat / proc / 11086 / cmdline

это выведет что-то вроде ниже.

  evince ^ @ / media / KINGSTON / Ubuntu-guide.pdf ^ @  

Надеюсь, это поможет

21
ответ дан 6 August 2018 в 04:23

открыть терминал:

  fuser -c / media / KINGSTON  

Он выведет что-то вроде этого:

  / media / KINGSTON /: 3106c 11086  

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл как текущий рабочий каталог m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

  sudo kill -9 3106 11086 sudo umount / media / KINGSTON  

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

  cat / proc / & lt; pid & gt; / cmdline  

Например: cat / proc / 11086 / cmdline

это выведет что-то вроде ниже.

  evince ^ @ / media / KINGSTON / Ubuntu-guide.pdf ^ @  

Надеюсь, это поможет

21
ответ дан 7 August 2018 в 22:30

открыть терминал:

  fuser -c / media / KINGSTON  

Он выведет что-то вроде этого:

  / media / KINGSTON /: 3106c 11086  

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл как текущий рабочий каталог m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

  sudo kill -9 3106 11086 sudo umount / media / KINGSTON  

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

  cat / proc / & lt; pid & gt; / cmdline  

Например: cat / proc / 11086 / cmdline

это выведет что-то вроде ниже.

  evince ^ @ / media / KINGSTON / Ubuntu-guide.pdf ^ @  

Надеюсь, это поможет

21
ответ дан 10 August 2018 в 10:38

открыть терминал:

  fuser -c / media / KINGSTON  

Он выведет что-то вроде этого:

  / media / KINGSTON /: 3106c 11086  

Это даст вам pid процессов, использующих этот том. Дополнительный персонаж в конце pid даст дополнительную информацию. (c в 3106c)

c - процесс использует файл как текущий рабочий каталог m - файл сопоставляется с mmap o - процесс использует его как открытый файл r - файл является корневой каталог процесса t - процесс обращается к файлу в виде текстового файла y - этот файл является управляющим терминалом для процесса

Итак, чтобы размонтировать просто убить эти pids и повторить попытку unmount

  sudo kill -9 3106 11086 sudo umount / media / KINGSTON  

Примечание. Чтобы найти точное имя приложения этих pids, вы можете использовать эту команду

  cat / proc / & lt; pid & gt; / cmdline  

Например: cat / proc / 11086 / cmdline

это выведет что-то вроде ниже.

  evince ^ @ / media / KINGSTON / Ubuntu-guide.pdf ^ @  

Надеюсь, это поможет

21
ответ дан 13 August 2018 в 17:10
  • 1
    fuser -ck также убьет его. – João Pinto 6 November 2010 в 12:05
  • 2
    Я бы предложил убить их без опции -9, чтобы дать этим приложениям возможность полностью отключиться. И я бы предложил использовать ps & lt; pid & gt; вместо редактирования файлов в / proc, чтобы увидеть имя и аргументы команды. – Marius Gedminas 6 November 2010 в 18:55
  • 3
    Я следую вашей процедуре, чтобы найти этот процесс, это Thunar - deamon. Нет лишних символов, дающих дополнительную информацию. Я еще не убил его, я беспокоюсь о том, какое влияние он может оказать на работу. – Guillaume Coté 6 November 2010 в 22:53

Самый полезный инструмент - 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 для записи

Нет механического способа найти окно, в котором файл открыт (это на самом деле не имеет технического смысла : если процесс имеет несколько окон, файл не связан конкретно ни с одним окном, ни даже с простым способом идентификации окна процесса (и, конечно, процесс не должен иметь никаких окон). Но обычно имени команды и имени файла достаточно, чтобы найти нарушителя и закрыть файл должным образом.

Если вы не можете закрыть файл и просто хотите закончить все это, вы можете убить процесс с помощью [ f17] (где 31421 - идентификатор процесса) или kill -HUP 31421 («зависание»). Если обычное убийство не делает трюк, убейте его с крайним предрассудком: kill -KILL 31421.

Существует GUI для lsof, lsof , но он не совсем готов к прайм-тайм но пока не упакован для Ubuntu.

¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но не обнаруживает точку монтирования, поэтому не будет перечислять их, если вы укажете mount точка. ² Исполняемый код часто называют текстом при обсуждении исполняемых форматов.

7
ответ дан 26 May 2018 в 00:34

Также это может помочь:

lsof | grep \/media\/KINGSTON
2
ответ дан 26 May 2018 в 00:34
  • 1
    Нет необходимости скрывать косые черты. – Marius Gedminas 6 November 2010 в 18:56
  • 2
    Когда вы не уверены, grep с кавычками, например. [F1] – Adam Matan 16 December 2010 в 17:55

Тем временем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

sudo fuser -ickv /"mountpoint"

Где:

параметр k убивает процесс нарушения, в то время как v показывает заранее процесс и его пользователь и i запрашивают подтверждение.

Если какой-то процесс сопротивляется, повторите попытку с помощью fuser -ickv -9 (или, в более общем плане, с -SIGNAL), который убивает самых упрямых. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 26 May 2018 в 00:34
  • 1
    Я нашел бессмертный процесс, мою неудачную попытку использовать vboxmanage. -_- – sudo 8 September 2017 в 03:04

Также это может помочь:

lsof | grep \/media\/KINGSTON
2
ответ дан 25 July 2018 в 22:56
  • 1
    Нет необходимости скрывать косые черты. – Marius Gedminas 6 November 2010 в 18:56
  • 2
    Когда вы не уверены, grep с кавычками, например. [F1] – Adam Matan 16 December 2010 в 17:55

Тем временем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

sudo fuser -ickv /"mountpoint"

Где:

параметр k убивает процесс нарушения, в то время как v показывает заранее процесс и его пользователь и i запрашивают подтверждение.

Если какой-то процесс сопротивляется, повторите попытку с помощью fuser -ickv -9 (или, в более общем плане, с -SIGNAL), который убивает самых упрямых. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 25 July 2018 в 22:56
  • 1
    Я нашел бессмертный процесс, мою неудачную попытку использовать vboxmanage. -_- – sudo 8 September 2017 в 03:04

Самый полезный инструмент - 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.

Существует GUI для lsof, lsof , но он не совсем готов к прайм-тайм но пока не упакован для Ubuntu.

¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но не обнаруживает точку монтирования, поэтому не будет перечислять их, если вы укажете mount точка. ² Исполняемый код часто называют текстом при обсуждении исполняемых форматов.

7
ответ дан 25 July 2018 в 22:56

Также это может помочь:

lsof | grep \/media\/KINGSTON
2
ответ дан 27 July 2018 в 01:32
  • 1
    Нет необходимости скрывать косые черты. – Marius Gedminas 6 November 2010 в 18:56
  • 2
    Когда вы не уверены, grep с кавычками, например. [F1] – Adam Matan 16 December 2010 в 17:55

Тем временем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

sudo fuser -ickv /"mountpoint"

Где:

параметр k убивает процесс нарушения, в то время как v показывает заранее процесс и его пользователь и i запрашивают подтверждение.

Если какой-то процесс сопротивляется, повторите попытку с помощью fuser -ickv -9 (или, в более общем плане, с -SIGNAL), который убивает самых упрямых. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 27 July 2018 в 01:32
  • 1
    Я нашел бессмертный процесс, мою неудачную попытку использовать vboxmanage. -_- – sudo 8 September 2017 в 03:04

Самый полезный инструмент - 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.

Существует GUI для lsof, lsof , но он не совсем готов к прайм-тайм но пока не упакован для Ubuntu.

¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но не обнаруживает точку монтирования, поэтому не будет перечислять их, если вы укажете mount точка. ² Исполняемый код часто называют текстом при обсуждении исполняемых форматов.

7
ответ дан 27 July 2018 в 01:32

Также это может помочь:

lsof | grep \/media\/KINGSTON
2
ответ дан 31 July 2018 в 10:34
  • 1
    Нет необходимости скрывать косые черты. – Marius Gedminas 6 November 2010 в 18:56
  • 2
    Когда вы не уверены, grep с кавычками, например. [F1] – Adam Matan 16 December 2010 в 17:55

Тем временем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

sudo fuser -ickv /"mountpoint"

Где:

параметр k убивает процесс нарушения, в то время как v показывает заранее процесс и его пользователь и i запрашивают подтверждение.

Если какой-то процесс сопротивляется, повторите попытку с помощью fuser -ickv -9 (или, в более общем плане, с -SIGNAL), который убивает самых упрямых. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 31 July 2018 в 10:34
  • 1
    Я нашел бессмертный процесс, мою неудачную попытку использовать vboxmanage. -_- – sudo 8 September 2017 в 03:04

Самый полезный инструмент - 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.

Существует GUI для lsof, lsof , но он не совсем готов к прайм-тайм но пока не упакован для Ubuntu.

¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но не обнаруживает точку монтирования, поэтому не будет перечислять их, если вы укажете mount точка. ² Исполняемый код часто называют текстом при обсуждении исполняемых форматов.

7
ответ дан 31 July 2018 в 10:34

Также это может помочь:

lsof | grep \/media\/KINGSTON
2
ответ дан 31 July 2018 в 11:37
  • 1
    Нет необходимости скрывать косые черты. – Marius Gedminas 6 November 2010 в 18:56
  • 2
    Когда вы не уверены, grep с кавычками, например. [F1] – Adam Matan 16 December 2010 в 17:55

Тем временем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

sudo fuser -ickv /"mountpoint"

Где:

параметр k убивает процесс нарушения, в то время как v показывает заранее процесс и его пользователь и i запрашивают подтверждение.

Если какой-то процесс сопротивляется, повторите попытку с помощью fuser -ickv -9 (или, в более общем плане, с -SIGNAL), который убивает самых упрямых. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 31 July 2018 в 11:37
  • 1
    Я нашел бессмертный процесс, мою неудачную попытку использовать vboxmanage. -_- – sudo 8 September 2017 в 03:04

Самый полезный инструмент - 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.

Существует GUI для lsof, lsof , но он не совсем готов к прайм-тайм но пока не упакован для Ubuntu.

¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но не обнаруживает точку монтирования, поэтому не будет перечислять их, если вы укажете mount точка. ² Исполняемый код часто называют текстом при обсуждении исполняемых форматов.

7
ответ дан 31 July 2018 в 11:37

Также это может помочь:

lsof | grep \/media\/KINGSTON
2
ответ дан 2 August 2018 в 04:19
  • 1
    Нет необходимости скрывать косые черты. – Marius Gedminas 6 November 2010 в 18:56
  • 2
    Когда вы не уверены, grep с кавычками, например. [F1] – Adam Matan 16 December 2010 в 17:55

Тем временем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

sudo fuser -ickv /"mountpoint"

Где:

параметр k убивает процесс нарушения, в то время как v показывает заранее процесс и его пользователь и i запрашивают подтверждение.

Если какой-то процесс сопротивляется, повторите попытку с помощью fuser -ickv -9 (или, в более общем плане, с -SIGNAL), который убивает самых упрямых. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 2 August 2018 в 04:19
  • 1
    Я нашел бессмертный процесс, мою неудачную попытку использовать vboxmanage. -_- – sudo 8 September 2017 в 03:04

Самый полезный инструмент - 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.

Существует GUI для lsof, lsof , но он не совсем готов к прайм-тайм но пока не упакован для Ubuntu.

¹ Lsof может перечислить некоторую информацию о процессах других пользователей, но не обнаруживает точку монтирования, поэтому не будет перечислять их, если вы укажете mount точка. ² Исполняемый код часто называют текстом при обсуждении исполняемых форматов.

7
ответ дан 2 August 2018 в 04:19

Также это может помочь:

  lsof |  grep \ / media \ / KINGSTON  
2
ответ дан 6 August 2018 в 04:23

Между тем команда фьюзера значительно улучшилась. Вы можете выполнить полную работу с помощью одной команды:

  sudo fuser -ickv / "mountpoint"  

Где:

  • k убивает процесс нарушения
  • , а v заранее показывает процесс и его пользователя
  • и i просит вас подтвердить.

Если какой-то процесс сопротивляется, попробуйте еще раз с fuser -ickv -9 (или, в более общем смысле, с -SIGNAL ), который убивает самые упрямые. Но вы всегда найдете какой-то «бессмертный» процесс ...!

2
ответ дан 6 August 2018 в 04:23

Другие вопросы по тегам:

Похожие вопросы: