Linux: Какой процесс, вызывающий “устройство, занят” при выполнении umount? [закрытый]

const char input[] = "..."; // the value to be converted
char res[9]; // the length of the output string has to be n+1 where n is the number of binary digits to show, in this case 8
res[8] = '\0';
int t = 128; // set this to s^(n-1) where n is the number of binary digits to show, in this case 8
int v = strtol(input, 0, 16); // convert the hex value to a number

while(t) // loop till we're done
{
    strcat(res, t < v ? "1" : "0");
    if(t < v)
        v -= t;
    t /= 2;
}
// res now contains the binary representation of the number

В качестве альтернативы (предполагается, что в "0x3A" нет префикса]:

const char binary[16][5] = {"0000", "0001", "0010", "0011", "0100", ...};
const char digits = "0123456789abcdef";

const char input[] = "..." // input value
char res[1024];
res[0] = '\0';
int p = 0;

while(input[p])
{
    const char *v = strchr(digits, tolower(input[p++]));
    if (v)
        strcat(res, binary[v - digits]);
}
// res now contains the binary representation of the number
70
задан MarkusQ 10 March 2009 в 23:00
поделиться

6 ответов

Посмотрите команда lsof (список открытые файлы) - это может сказать Вам, которых процессы содержат что открытый. Иногда это хитро, но часто что-то столь же простое как sudo lsof | grep (your device name here) могло сделать это для Вас.

97
ответ дан milchreis 7 November 2019 в 09:08
поделиться

Это точно, почему "термофиксатор-m/mount/point" существует.

BTW, я не думаю, "термофиксатор" или "lsof" укажут, когда ресурс будет сохранен модулем ядра, хотя у меня обычно нет той проблемы..

5
ответ дан 7 November 2019 в 09:08
поделиться

lsof и термофиксатор являются действительно двумя способами найти процесс, который сохраняет определенный файл открытым. Если Вы просто хотите, чтобы umount успешно выполнился, необходимо исследовать его-f и-l опции.

7
ответ дан Anonymous 7 November 2019 в 09:08
поделиться

Необходимо использовать термофиксатор команда.

, Например, fuser /dev/cdrom возвратит pid процесса с помощью /dev/cdrom.

, При попытке размонтироваться, можно уничтожить процесс тезисов с помощью -k переключатель (см. man fuser).

23
ответ дан Freddy789 7 November 2019 в 09:08
поделиться

На всякий случай... иногда происходит, что Вы называете umount от терминала, и Ваш текущий каталог принадлежит смонтированной файловой системе.

43
ответ дан alvatar 7 November 2019 в 09:08
поделиться
lsof +f -- /mountpoint

(здесь перечислены процессы, использующие файлы на монтировании, смонтированном в / mountpoint. Особенно полезно для определения того, какие процессы используют смонтированный USB-накопитель или CD / DVD.

9
ответ дан 24 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

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