Исправлена ​​проблема «Firefox уже запущен» в Linux


27

Я пытаюсь открыть Firefox в CentOS, но получаю следующее сообщение:

Firefox уже запущен, но не отвечает

и Firefox не открывается. Я попробовал это в командной строке:

kill Firefox

но это не сработало. Кроме того, я не знаю, в каком каталоге я должен выполнять правильные команды.

Как я могу это исправить?


Есть killallкоманда на Cent OS? Тот, который вы можете использовать, чтобы убить по имени, как вы пытались раньше.
— manatwork

3
Да , есть стандартные команды , такие как pgrep, pkill, и killall.
— SLM

CentOS - это дистрибутив Linux, а не Unix.
— Рафаэль Кавальканти

Dchris - Пожалуйста, не забудьте принять, какой ответ сработал для вас, или попросить дополнительную информацию.
— user66001

Дхрис - никто.
— user66001

Ответы:


29

С http://kb.mozillazine.org/Profile_in_use - Проверьте:

1) файл с именем .parentlock
-AND-
2) символическая ссылка с именем lock
... в ~ / .mozilla / firefox / случайная строка буквенно-цифровых символов .default /

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

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

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

Более менее авторитетная информация здесь .


3
Это решение остается в силе почти через 4 года (только что протестировано с Firefox 53 на Ubuntu 17.04). Благодарность!
— Ванни

Должен быть ответ. У меня была проблема, когда другой пользователь вошел в Firefox, поэтому я не мог убить PID .. Мне пришлось удалить эти файлы ..
— dermen

17
  1. Сначала найдите идентификатор процесса firefox, используя следующую команду в любом каталоге:

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

    kill [firefox pid]
    

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

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

kill $(pidof firefox)

@don_crissti намного лучше!
— Дхрис

8
Или еще лучше pkill firefox.
— SLM

Если не работает, попробуйте kill -9 $(pidof firefox)илиpkill -9 firefox
— mavillan

Из опыта -9почти всегда рекомендуется.
— Чайба

ПРИМЕЧАНИЕ. Вышеприведенное не позволит Firefox выполнять закрывающие операции (подобно другим опциям pkill / kill, которые обсуждались в этом вопросе в других местах), и будет приводить (среди прочего) к lockудалению символической ссылки, что приведет к оставьте сообщение в этом вопросе. Смотрите мой ответ для более подробной информации.
— user66001

4

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

killall -SIGTERM firefox

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


5
На самом деле, нет. killall точно соответствует шаблону . То, что вы сказали, действительно для pkill: оно убивает все процессы, содержащие этот шаблон (если вы не передадите -x в аргументах). Например, «pkill refox» убьет firefox, но «killall refox» ничего не сделает (если у вас не запущен процесс «refox»).
— Рафаэль Кавальканти

ПРИМЕЧАНИЕ. Вышеприведенное не позволит Firefox выполнять закрывающие операции (подобно другим опциям pkill / kill, которые обсуждались в этом вопросе в других местах), и будет приводить (среди прочего) к lockудалению символической ссылки, что приведет к оставьте сообщение в этом вопросе. Смотрите мой ответ для более подробной информации.
— user66001

2

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

firefox -P

Или используя оболочку Scipt:

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

-1 firefox -Pзапрашивает профиль для загрузки, что не является проблемой здесь. Сценарий оболочки удалит файлы, о которых идет речь, здесь (будем надеяться, что это не так в других прошлых / будущих версиях Firefox). Удалить первое предложение.
— user66001

1

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


0

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

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


Или вы можете изменить разрешение файла profiles.ini на 777
— kavi temre

-1 Где находится документация о том, что profiles.ini запрещает запуску Firefox с сообщением об ошибке OP?
— user66001

0

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


-1 Если кому-то наплевать на историю посещенных страниц, файлы cookie, закладки или что-то, что происходило в предыдущих сеансах просмотра, это было бы решением. Но для остального мира это похоже на замену вашего нового автомобиля, когда ему нужна новая шина.
— user66001
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.