[unix] xdg-open을 사용하여 새로운 프로세스로 URL을 엽니 다.

웹 개발 환경 으로 Debian을 기반으로하고 Terminator를 사용하는 Crunchbang 을 실험하기 시작했으며 , 어려움을 겪고있는 것 중 하나는의 동작입니다 . 나는 OSX 배경에서 왔 으므로이 질문이 조밀 해지면 저를 용서하십시오.xdg-open

URL을 열어서 xdg-open http://www.google.com동일한 터미널 창을 계속 사용하여 작동하고 싶습니다 ( openOSX 의 기능 방식 ). 지금 사용 xdg-open하면 브라우저 창을 닫거나로 수동으로 항목을 종료 할 때까지 현재 탭 / 세션 을 차지합니다 ctrl + c. URL을 열고 페이지의 데이터를 참조하여 추가 프로세스를 열지 않고도 동일한 탭 / 창에서 사용할 수있는 새로운 프로세스를 시작하는 것이 좋습니다.



답변

이상하게도, 그것은 데비안에서 바로 작동합니다. 백그라운드에서 실행 해보십시오.

xdg-open http://www.google.com &

~/.bashrc파일에 다음 줄을 추가하여 이것을 함수로 만들 수 있습니다 .

function open () {
    xdg-open "$*" &
}

그런 다음 간단하게 실행할 수 있으며 open http://www.google.com백그라운드에서 실행됩니다.


답변

을 사용하여 백그라운드 작업으로 시작하지 않고 현재 쉘에서 프로세스를 분리 xdg-open http://www.google.com &하려면 detach유틸리티가 마음에 듭니다.

detach xdg-open http://www.google.com

이것에 대한 별칭을 만들 수 있습니다. 내가 좋아하는 detach이상 nohup그 호출이 청소기는 그래서 기본적으로 닫히고 표준 입력 표준 출력과 표준 에러로.


답변

xdg-open프로그램이 끝날 때까지 기다립니다. 이것은 의도적으로 설계된 동작입니다. 프로그램이 텍스트 모드 프로그램 인 경우 터미널의 전경에 있어야합니다. 프로그램이 GUI 인 경우에도이 동작은 xdg-open스크립트에서 사용되며 파일을 편집 한 후 스크립트가 무언가를 수행하려고하는 경우에 유용합니다 (예 : 새 버전을 어딘가에 보내거나 다른 방법으로 새 ​​버전으로 작성).

기다리지 않으려면 xdg-open백그라운드에서 실행 하십시오. 끝에 앰퍼샌드를 넣어서 백그라운드에서 쉘 명령을 실행할 수 있습니다.

xdg-open http://www.google.com &

일부 프로그램에서는 xdg-open즉시 돌아옵니다. 실제로 발생하는 프로그램 xdg-open은 즉시 반환됩니다. 이는 일반적으로 단일 인스턴스에서 모든 파일을 여는 GUI 프로그램에서 발생합니다. 두 번째로 파일을 시작하면 실행중인 인스턴스에 메시지를 보내 파일을 열고 즉시 종료합니다.


답변

terdon의 답변Dan D.의 토론을 결합하여nohup 원하는 것을 정확하게 수행하는 함수를 만들었습니다.

  1. 선택한 앱에서 파일을 열지 않고 엽니 ​​다 어떤 모두에서 터미널로 쓰기.
  2. 터미널 창을 닫을 수 있도록 프로세스를 분리합니다.
  3. 앱이 생성하는 오류를 터미널에 쓰지 않습니다.

나는 이것을 내 .bashrc/.zshrc파일에 추가했다 .

function open () {
  nohup xdg-open "$*" > /dev/null 2>&1
}

에 대한 설명은 숨기기 에 대한 토론/dev/null 2>&1참조하십시오 .stdoutstderr


답변

이 시도:

DISPLAY=:0.0; xdg-open '<url>'

이 기술을 사용하여 magnet : // URL을 Bit Torrent 클라이언트 Vuze에 대기열에 넣습니다.

ssh someserver "DISPLAY=:0.0; xdg-open 'http://www.google.com/'"

작은 따옴표는 URL의 내용을 보호하여 쉘이이를 해석하지 않도록합니다.


답변

명령 행 (루프)에서 웹 페이지를 열어야하는 경우 스크립트를 시작하기 전에 브라우저를 열면됩니다.

이 경우 첫 번째 링크 후 브라우저가 닫힐 때까지 기다리지 않고 새 탭에서 모두 엽니 다.


답변

오늘처럼 그 옵션들 중 어느 것도 나를 위해 일하지 않았습니다. OP가 “xdg-open 사용”이라고 말한 것을 미리 알고 있습니다.

나는 데드 심플을 끝내었다 chrome https://google.es --new-window || chromium https://google.es --new-window || firefox https://google.es.

이 3 가지 브라우저가없는 경우 원하는대로 원하는 브라우저를 자유롭게 사용하십시오.

참고 : Firefox는 아무것도 추가하지 않고 새 창을 열었습니다. 케이스가 당신을 위해 seamesly 작동하지 않습니다, 사용하십시오 firefox https://google.es -new-instance -new-window. 하나의 참고 -파이어 폭스 플래그.