Исправьте “Firefox, уже выполняет” проблему в Linux

Можно отличить файл с жесткой ссылкой (ссылками) на него из non-hard-linked файла с "числом каналов". Я вижу два способа получить это от командной строки:

% stat original
  File: ‘original’
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 804h/2052d      Inode: 932815      Links: 2
Access: (0644/-rw-r--r--)  Uid: (  500/ bediger)   Gid: ( 1000/ bediger)
Access: 2012-07-13 22:13:52.317101530 -0600
Modify: 2012-07-13 22:13:52.317101530 -0600
Change: 2012-07-13 22:14:08.050894536 -0600
 Birth: -

Или

1010 % ls -li 
total 0
932815 -rw-r--r-- 2 bediger bediger 0 Jul 13 22:13 original
932815 -rw-r--r-- 2 bediger bediger 0 Jul 13 22:13 secondary

Тем одиноким '2' прежде "bediger" является число каналов. Обратите внимание, что оба имен файлов имеют то же inode число, 932815.

Я уверен, что обе из этих команд получают число каналов от st_nlink поля статистики структуры, которая заполнена a stat() системный вызов.

Почти я могу сказать, работая tar с --hard-dereference средства, что вместо того, чтобы получить единственный файл с двумя отличными именами файлов (как в примере выше), Вы получаете два файла, каждого с единственным именем файла. tar вероятно, проверяет число каналов на каждом файле, и по умолчанию при извлечении, это создает жесткую ссылку на втором имени файла, которое это имеет для трудно связанных данных файла. При вызове --hard-dereference на создании архива это, кажется, создает совершенно новый файл для второго имени файла когда вызов извлечения tar выполнения.

28
13.09.2016, 17:47
7 ответов
  1. Сначала найдите идентификатор процесса Firefox с помощью следующей команды в любом каталоге:

    pidof firefox
    
  2. Уничтожьте процесс Firefox с помощью следующей команды в любом каталоге:

    kill [firefox pid]
    

Затем запустите Firefox снова.

Или можно выполнить в том же самом всего одна команда. Поскольку don_crissti сказал:

kill $(pidof firefox)
17
27.01.2020, 19:39
  • 1
    @don_crissti намного лучше! –  Dchris 08.06.2013, 13:44
  • 2
    Или лучше все еще pkill firefox. –  slm♦ 09.06.2013, 03:57
  • 3
    Если не работает, попробовать kill -9 $(pidof firefox) или pkill -9 firefox –  mavillan 04.09.2013, 17:38
  • 4
    На основе опыта, -9 почти всегда рекомендуется. –  schaiba 25.02.2016, 12:18
  • 5
    ОТМЕТЬТЕ: Вышеупомянутое не позволит Firefox выполнять заключительные операции (как другие pkill/kill опции, обсужденные в другом месте по этому вопросу, будет, как они в настоящее время), и приведет к (среди других вещей) lock символьная ссылка, не будучи удаленным, который вызовет сообщение в этом вопросе остаться. Дополнительную информацию см. в моем ответе. –  user66001 26.04.2017, 21:17

Из http://kb.mozillazine.org/Profile_in_use - проверяют на:

1) Файл называют .parentlock
- И -
2) Символьную ссылку называют lock
... в ~/.mozilla/firefox/random строка алфавитно-цифрового characters.default/

Первый присутствует, в то время как Firefox работает, чтобы препятствовать тому, чтобы больше чем один другой экземпляр пытался одновременно записать в тот же набор файлов профиля, и если Firefox не закрывается чисто, ни один не может быть удален.

Сообщение об ошибке, полученное в этом случае, должно быть:

Отовсюду в файловой системе (или удаляющий это, если pwd отчеты ~/.mozilla/firefox/random string of alphanumeric characters.default), при замене случайной строки алфавитно-цифровых символов с папкой профиля FF на компьютере сделать rm ~/.mozilla/firefox/random string of alphanumeric characters.default/.parentlock ~/.mozilla/firefox/random string of alphanumeric characters.default/lock` (принятие первого предложения удается) удалить их, если нет выполнения процесса Firefox.

Больше меньшего-количества-достоверной-информации здесь.

31
27.01.2020, 19:39
  • 1
    Это решение все еще допустимо почти после 4 лет (просто протестированный с Firefox 53 на Ubuntu 17.04).Спасибо! –  Vanni 26.04.2017, 17:26
  • 2
    Должен быть ответ. У меня была проблема, когда другой пользователь вошел в Firefox, таким образом, я не мог уничтожить PID.. Я должен был удалить эти файлы.. –  dermen 07.08.2017, 06:00

Обычно, многие пользователи говорят, что эта команда помогает:

killall -SIGTERM firefox

Команда killall будет процессы killall, которые называют "Firefox". SIGTERM является типом сигнала уничтожения. Эта команда работает хорошо на меня и других пользователей Linux. Кроме того, это может помочь ожидать спустя тридцать секунд после заключительного Firefox, прежде чем это будет снова включено.

4
27.01.2020, 19:39
  • 1
    Едва ли. killall соответствует шаблону точно. То, что Вы сказали, допустимо для pkill: это уничтожает все процессы, содержащие тот шаблон (если Вы не передаете-x в аргументах). Например, "pkill перелиса" уничтожит Firefox, но "killall перелиса" ничего не сделает (если у Вас нет выполнения процесса "перелисы"). –  Rafael Cavalcanti 09.06.2013, 19:14
  • 2
    : Вышеупомянутое не позволит Firefox выполнять заключительные операции (как другие pkill/kill опции, обсужденные в другом месте по этому вопросу, будет, как они в настоящее время), и приведет к (среди других вещей) lock символьная ссылка, не будучи удаленным, который вызовет сообщение в этом вопросе остаться. Дополнительную информацию см. в моем ответе. –  user66001 11.06.2013, 22:55

Если при поиске с помощью pgrep или htop вы не обнаружили запущенных экземпляров firefox и хотите принудительно перезапустить firefox, просто удалите файл profiles.ini и перезапустите firefox.

Внимание: Сделайте это, если вам не важны профили. Файл можно найти в ~/.mozilla/firefox/ (если этот profiles.ini не имеет для вас никакого смысла, можете идти и удалять).

0
27.01.2020, 19:39

Очень простой способ - просто открыть терминал, запустить firefox -P и либо удалить профиль пользователя, который не запустить или просто создать другой профиль и установить его по умолчанию.

0
27.01.2020, 19:39

Если ничего из вышеперечисленного не работает, убедитесь, что ваш профиль Firefox принадлежит вашему пользователю, а не, скажем, пользователю root. Я получил эту точную ошибку после того, как скопировал свой профиль откуда-то еще, забыв, что в то время я работал в корневой оболочке.

1
27.01.2020, 19:39

откройте терминал и введите:

firefox -P

Или с помощью сценария оболочки:

#!/bin/bash
files=`find ~/.mozilla -name "*lock"`
for file in `echo $files`
do
  echo "removing $file..."
  rm "$file"
done
2
27.01.2020, 19:39

Теги

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