Firefox, 2 대의 Linux 시스템, 1 대의 X 서버


10

Windows에서 ssh (putty)를 통해 정기적으로 로그온하는 Linux 시스템이 있습니다. Windows 바탕 화면에서 VcXsrv X-server를 실행하고 있습니다. 주로 웹 기반 코드 검토 시스템에 액세스하기 위해 디버거 (ddd)와 firefox를 실행하는 데 사용합니다. 스크립트에서 시작할 수 있도록 Linux firefox를 사용하는 것이 편리합니다. 나는 보통 새 창을 만들지 않도록 "-new-tab"으로 이것을 시작합니다.

이제 나는 이전 업데이트와 함께 실행중인 새로운 Linux 시스템을 가지고 있습니다. 내가 주목 한 것은 이상한 행동입니다. 두 컴퓨터에서 이미 실행중인 새로운 파이어 폭스 세션을 시작하면 사용합니다.

내가 할 수있는 것은 여전히 ​​새로운 탭으로 시작하지만 동일한 X 서버에 표시되는 다른 컴퓨터의 인스턴스가 아닌 현재 컴퓨터의 firefox 인스턴스에서만 실행됩니다.

-no-remote, -new-instance를 포함한 다양한 플래그를 가지고 놀고 특정 프로파일을 정의하고 사용하고 있습니다. 그러나 원하는 결과를 얻지 못했습니다. 위에서 설명한 동작이 발생하거나 "Firefox가 이미 실행 중이지만 응답하지 않습니다. 닫으십시오"와 같은 오류가 발생합니다.

편집 : 몇 가지 예를 제공하기 위해 이것을 편집하라는 요청을 받았습니다.

확인. 다음은 M_OLD와 M_NEW를 가리 킵니다. 이들은 다른 버전의 Firefox (1.5 및 19)로 다른 버전의 Linux를 실행하는 별도의 시스템입니다. Putty라는 ssh 클라이언트를 통해 둘 다 연결하고 Windows 데스크톱의 X 서버로 X를 전달하고 있습니다. 하나의 X 서버 만 있습니다.

예 1 :

퍼티 세션에서 M_OLD까지 다음을 실행합니다.

firefox www.google.com &

내 M_NEW 퍼티 세션에서 다음을 실행합니다.

firefox www.imdb.com &

두 개의 탭이있는 하나의 firefox 1.5 창이 나타납니다. 반대로 반대로 동일한 결과를 얻지 만 firefox 19와 동일한 결과를 얻습니다. 즉, 아래 설명에 설명 된 것처럼 첫 번째 명령은 firefox의 인스턴스를 시작하고 두 번째 명령은 기존 인스턴스에 새 탭을 열도록 지시합니다. 인스턴스가 동일한 X 서버 인 한 다른 머신에있는 경우에도 마찬가지입니다.

그러나 나는 이것을 원하지 않습니다. 별도의 컴퓨터에 대해 별도의 인스턴스를 갖고 싶습니다. 그래서:

예 2 :

퍼티 세션에서 M_OLD까지 다음을 실행합니다.

firefox -no-remote www.google.com &

내 M_NEW 퍼티 세션에서 다음을 실행합니다.

firefox -no-remote www.imdb.com &

이제 두 개의 파이어 폭스 인스턴스가 있습니다. 그러나 내가 M_NEW에서 실행하면 :

firefox -no-remote www.google.com &

내가 얻을 게

Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

내가 시도하더라도

firefox -no-remote -new-instance www.google.com &

아니면 그냥

firefox -new-instance www.google.com &

그런 다음 여전히 오류가 발생합니다.

내가 정말로 원하는 것은 가능하지 않을 수도 있지만 각 머신마다 별도의 인스턴스를 갖는 것이지만 해당 머신에서 새 URL이 시작되면 새 탭이 열립니다. 각 URL에 대해 새 탭이있는 인스턴스를 하나만 또는 머신 당 하나의 인스턴스를 가질 수 있지만 한 번에 하나씩 만있는 것처럼 보입니다.

잘하면 더 명확합니다.


당신은 명확히 할 수 있습니까? 새로운 Linux 시스템은 어떤 관련이 있습니까? X를 Windows 컴퓨터로 전달하고 있습니까? 두 리눅스 박스에 동시에 연결되어 있습니까? 각 박스에 연결하는 방법에 대한 자세한 내용을 알려주십시오.
terdon

문제가 발생하면 두 컴퓨터에 모두 ssh -X올바르게 연결되어 있습니까?
terdon

예, X를 Windows 컴퓨터로 전달하고 있습니다. 예, 둘 다 연결되어 있습니다. 파이어 폭스를 시작하기 때문에 새로운 기계가 관련이 있습니다. 그러나 새 파이어 폭스 인스턴스를 시작하는 대신 기존 인스턴스에서 이전 탭에서 시작한 새 탭을 엽니 다. 마치 새로운 파이어 폭스 프로세스가 파이어 폭스가 해당 X 서버에서 실행 중인지 확인하고 새 파이어 폭스를 열라는 메시지를 보내는 것처럼 보입니다. 매우 영리하지만 내가 원하는 것은 아닙니다. "old"와 "new"는 서로 다른 버전의 firefox 인 경우에만 관련이 있습니다. 말이 되나요?
PaulM

1
당신이 묘사 한 것은 정상입니다 ( 놀랍게도 알았 습니다) --no-remote.하지만 달리기를 할 때 어떻게 고정되지 않는지는 알 수 없습니다 . "Firefox 이미 실행 중"메시지가 표시되면 질문 을 편집 하고 알려주시겠습니까? 실행 하면 원격 시스템에서 실행되지만 로컬 X 서버에 표시되는 새 파이어 폭스 인스턴스 firefox -no-remote 시작됩니다.
terdon

1
-p eg 추가해야 할 수도 있습니다 -p -no-remote. 이를 통해 새로운 Fx 프로파일로 시작할 수 있습니다. 명령 행 옵션을 참조하십시오 . 기존 Fx 프로세스에 연결하기 위해 시도 firefox https://www.mozilla.org하거나firefox -remote "openURL(https://www.mozilla.org, new-tab)"
vWil

답변:


1

고유 한 Firefox 인스턴스 (예 :로 생성 --no-remote)는 별도의 프로파일을 가져야합니다.

옵션 1 : Firefox를 실행하는 각 시스템마다 하나씩 두 개 이상의 프로필을 만듭니다. 예

firefox --no-remote -CreateProfile localuser
firefox --no-remote -CreateProfile host2

이제 파이어 폭스를 시작하고 시작시 프로파일을 선택하십시오

firefox --no-remote -P localuser

또는

firefox --no-remote -P host1

옵션 2 : 시작시 "일회용"프로파일을 작성하도록 동적 솔루션을 설정하십시오.

TEMPPROFILE=$(date +%Y%m%d%H%M%S)
firefox --no-remote -CreateProfile $TEMPPROFILE 2>/tmp/.mozprofile.$TEMPPROFILE
firefox --no-remote -P $TEMPPROFILE

나중에 임시 프로파일을 제거하는 단계를 추가 할 수 있습니다 (제거 할 디렉토리는 위의 명령을 통해 /tmp/.mozprofile에 저장되어있는 CreateProfile 명령의 출력을 구문 분석하여 찾을 수 있습니다. $ TEMPPROFILE


이미 시도했습니다- "example 2"참조
PaulM

아, 그렇습니다-개별 인스턴스는 다른 프로파일을 사용해야합니다.
Johan

제안한 첫 번째 "옵션"은 전혀 의미가 없었으므로 실제로는 답변에서 제거되도록 제안했습니다.
SamB

실제로, 그것은없이 작동 할 수 있습니다 -no-remote...
SamB

0

좋아 ... 이것이 효과가 있는지 모르겠지만, 내가 시도한 첫 번째 것입니다.

각 컴퓨터에서 두 번째 스크립트를 작성하면 새 탭을 작성하지 않고 새 인스턴스 만 작성하는 것이 어떻습니까? 해당 시스템에서 현재 FF가 실행되고 있지 않은 경우이 새 스크립트를 사용하지만 이미 실행중인 경우 새 탭을 작성하는 이전 스크립트를 사용합니다.

이것이 작동하면 단일 스크립트에서 ps 출력에 대한 정규 표현식 구문 분석을 수행하여 FF가 시스템에서 이미 실행 중인지 확인하고, 시스템에 따라 -new-tab 스위치 또는 -no-remote를 사용할 수 있습니다. 발견; 그러나이 방법이 테스트 될 때까지 기다려야 할 수도 있습니다.


그것은 효과가있는 것처럼 들리지만 tbh 나는 이것을 포기했습니다. M_OLD가 곧 폐기됩니다.
PaulM

0

XRemoteClient.cpp를 보면 다음과 같이 해야한다고 생각합니다.

user@host1$ firefox -CreateProfile profile1

과:

user@host2$ firefox -CreateProfile profile2

그런 다음 어딘가에 가고 싶을 때

user@host1$ firefox -P profile1 -new-tab http://example.com

또는 host2에서 수행 할 작업을 추측 할 수 있다고 생각합니다.

분명히 더 나은 이름을 선택할 수 있습니다. 프로파일 작성 방법도 중요하지 않습니다. 중요한 것은 호출 할 때마다 명령 행에서 프로파일 이름지정하는 것입니다 . 각 인스턴스에는 고유 한 프로파일 이름이 있습니다.

이것은 심지어 작동 수도 있습니다 .


0

여전히 필요한 경우 여기에 매우 우아한 해결책이 있습니다 . 지금은 5 개의 독립적 인 파이어 폭스 인스턴스가 있고 원하는만큼 실행하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.