와인에서 PDFXCview.exe(pdfxchange 뷰어 휴대용 버전용)를 실행하여 PDF 파일을 엽니다.
PDFXCview.exe 1.pdf
다른 파일에 동일한 작업을 수행하면 PDFXCview.exe의 동일한 프로세스에 의해 다른 파일이 열립니다. 다른 프로세스에서 열 수 있나요? 그 이유는 동일한 프로세스에서 두 개의 PDF 파일을 열면 응용 프로그램이 느려지거나 심지어 응답하지 않기 때문입니다.
다른 프로세스를 실행하고 있습니까, 아니면 실행 가능한 PDFXCview.exe에 의해 결정되지 않습니까? exe 파일이 서버로 실행되고 있어서 그런걸까요?
다른 기본 Linux 애플리케이션에서도 솔루션이 동일합니까?
감사해요.
답변1
출신지,동일한 실행 코드를 사용하여 여러 프로세스를 실행할 수 있습니다.. 자연적으로 발생하지 않았다면 프로그램 자체가 발생하게 만든 것입니다. 그러나 Windows(또는 적어도 Windows와 유사한) 시스템에서 이 작업이 어떻게 수행되는지는 말씀드릴 수 없습니다. Linux에서는 주로 .pid
파일 작업을 합니다.
exe 파일이 서버로 실행되고 있어서 그런걸까요?
글쎄, 그것도 그럴 수도 있겠네요. 실제로 Emacs에는 이를 수행하는 옵션이 있습니다. 그러나 PDF 뷰어의 요점을 잘 이해하지 못합니다... Linux 시스템에서는 널리 사용되는 두 가지 솔루션을 생각할 수 있습니다.
- 두 인스턴스의 통신을 허용하는 UNIX 소켓입니다.
- 신호: 두 번째 인스턴스가 생성되면 첫 번째 인스턴스에만 신호를 보냅니다(의미:깨우다!) 그리고 종료합니다.
가장 먼저 확인해야 할 사항: 이것이 구성 가능합니까? 예를 들어 VLC에서는 다음과 같이 설정할 수 있습니다(정말 훌륭합니다).
어떤 이유에서인지(정말 알고 싶지 않습니다) 더 이상 Wine을 실행할 수 없습니다. 그러나 가상 머신에서는편집 > 환경설정메뉴:
로 전환단일 문서그리고 허용여러 인스턴스이 작은 것이 당신이 찾고 있는 PDF 뷰어로 바꿔줄 것입니다!
.pid
Linux 시스템에서는 애플리케이션에서 생성된 파일을 사용해 볼 수 있습니다 . 이로 인해 불쾌한 결과가 발생할 수 있지만 애플리케이션이 시작된 후 파일을 삭제하면 해당 파일 이외의 다른 인스턴스를 찾지 않는 한 새 인스턴스를 속일 수 있습니다 .pid
.
또 다른 해결책은 두 번째 프로그램을 다른 사용자로 실행하는 것입니다. 두 명의 사용자가 동일한 프로세스를 공유할 수 없기 때문에 프로그램을 두 번 시작해야 합니다. 이것은 일부 사람들이 Linux에서 Skype를 두 번 성공적으로 시작한 방법입니다(많은 노력이 필요하지는 않지만).
단일 인스턴스 모드에서 실행되는 애플리케이션에는 그렇게 하는 데에는 타당한 이유가 있을 수 있다는 점을 염두에 두어야 합니다. 그리고 대부분의 경우 이는 실제로 필요한 디자인이라기보다는 사용자 선택입니다.
이점
프로세스는 하나만 실행 중이었고, 이는 각 프로세스에 메모리 주소 공간이 있다는 의미이므로 이들 간의 통신이 쉬웠을 것입니다.두 개의 프로세스, 두 개의 인스턴스.
일부 그래픽 프로그램은 매우 자주 실행됩니다. VLC를 예로 들어보겠습니다. Music 디렉토리에서 MP3 파일을 열 때마다 새 창이 생성됩니다! 즉, 3~4분마다 음악이 끝나면 이전 창을 닫고 새 파일을 열어야 합니다. 별로 편리하지 않습니다. 절대적으로하지. 그러나 현재 VLC 인스턴스가 대기열을 닫거나 다시 열지 않고 대기열에 다음 노래를 등록하도록 하는 것은 깔끔합니다.
또 다른 장점: 멋진 비디오 게임처럼 매우 무거운 애플리케이션을 사용하세요. 애플리케이션을 실행하는 데는 많은 시간과 자원이 필요하며, 우리 모두는 애플리케이션을 실수로, 잘못 실행하는 것이 얼마나 쉬운지 알고 있습니다. 단일 인스턴스 모드에서 실행되도록 애플리케이션을 설정하면 다시 시작하면 일반적으로 첫 번째 인스턴스만 다시 포그라운드로 가져옵니다. 또한 많은 게임 개발자는 이를 악용하여 사용자가 동시에 여러 계정으로 로그인하는 것을 방지합니다.
결점
글쎄, 보시다시피 디자인이 좋지 않은 경향이 있습니다. 실제로 통신이 더 쉬워지기 때문에(프로세스 간 통신, IPC가 필요 없음) 일부 게으른 개발자는 애플리케이션을 항상 단일 인스턴스 상태로 강제하려고 할 수 있습니다. 대부분의 응용 프로그램에서는 이것이 실제로 문제가 되지 않지만 PDF 뷰어에서는 터무니없는 일입니다.
실제로 단점은 아니지만 상황은 좋지 않습니다. 이 옵션을 사용할 수 없습니다. 귀하의 신청서가 아닌 이상진짜단일 인스턴스 모드에서 실행해야 하며 항상 사용자 선택으로 두어야 합니다(또는 방해가 되지 않는 경우 다중 인스턴스를 사용).
하지만 궁극적으로 여기서 가장 큰 관심사는사용자 경험. 이것이 바로 단일 인스턴스 모드가 일반적으로 옵션인 이유입니다.너이 프로그램을 사용하세요. 한 달에 1~2개의 비디오 파일만 시청한다면 VLC가 여러 인스턴스에서 실행되는 것에 대해 신경 쓰지 않을 것입니다. 음악을 100% 듣는다면, 결국엔 음악을 듣고 싶지 않기 때문에 이런 점에 신경을 쓰게 될 것입니다.NVLC 프로세스n-1비활성.
답변2
일반적으로 말하면 그렇지 않습니다. 프로그램이 호출되지 않으면 execve
기호를 미리 로드하는 코드를 작성하지 않는 한 아무것도 가로챌 가능성이 없지만 이것이 WINE에서 작동하는지 확실하지 않습니다.