アプリケーションが他のプロセスを実行するように欺く方法は?

アプリケーションが他のプロセスを実行するように欺く方法は?

ワインでPDFXCview.exe(pdfxchangeビューアポータブルバージョン用)を実行してPDFファイルを開きます。

PDFXCview.exe 1.pdf

別のファイルに対して同じ操作を実行すると、PDFXCview.exe の同じプロセスによって別のファイルが開きます。別のプロセスで開くことができますか?その理由は、同じプロセスで2つのPDFファイルを開くと、アプリケーションが遅くなったり応答しなくなったためです。

別のプロセスを実行していますか、それとも実行可能なPDFXCview.exeによって決まりませんか? exeファイルがサーバーとして実行されているのでしょうか?

他の基本的なLinuxアプリケーションでも同じ解決策はありますか?

ありがとうございます。

ベストアンサー1

出身地、同じ実行コードを使用して複数のプロセスを実行できます。。自然に発生しなかった場合は、プログラム自体が発生します。ただし、Windows(または少なくともWindowsと同様)のシステムでこれがどのように実行されるのかはわかりません。 Linuxでは主に.pidファイルを扱います。

exeファイルがサーバーとして実行されているのでしょうか?

まあ、それもそうかもしれませんね。実際、Emacsにはこれを行うオプションがあります。しかし、PDFビューアのポイントをよく理解していません... Linuxシステムでは、広く使用されている2つのソリューションを考えることができます。

  • 2 つのインスタンスの通信を許可する UNIX ソケットです。
  • シグナル:2番目のインスタンスが作成されると、最初のインスタンスにのみシグナルを送信します(意味:覚醒!)そして終了します。

最初に確認する必要があります:これは設定可能ですか?たとえば、VLCでは次のように設定できます(本当に素晴らしいです)。

VLCオプション

何らかの理由で(本当に知りたくありません)、Wineを実行することはできません。しかし、仮想マシンでは編集>環境設定メニュー:

単一文書

複数のインスタンス

に切り替える単一文書そして許可複数のインスタンスこの小さなものがあなたが探しているPDFビューアに変わります!

.pidLinuxシステムでは、アプリケーションで生成されたファイルを試すことができます。これにより不快な結果が生じる可能性がありますが、アプリケーションの起動後にファイルを削除すると、そのファイル以外のインスタンスを見つけない限り、新しいインスタンスをだますことがあります.pid

別の解決策は、2番目のプログラムを別のユーザーとして実行することです。 2人のユーザーが同じプロセスを共有できないため、プログラムを2回起動する必要があります。これは、一部の人がLinuxでSkypeを2回正常に起動した方法です(多くの努力は必要ありませんが)。

シングルインスタンスモードで実行されているアプリケーションには、これを行うには妥当な理由がある可能性があることに留意してください。そして、ほとんどの場合、これは実際に必要なデザインではなく、ユーザーの選択です。

利点

  • プロセスは1つしか実行されておらず、これは各プロセスにメモリアドレス空間があることを意味しているため、それらの間の通信は簡単でした。2つのプロセス、2つのインスタンス

  • 一部のグラフィックプログラムは非常に頻繁に実行されます。 VLCを例に挙げましょう。 MusicディレクトリでMP3ファイルを開くたびに、新しいウィンドウが作成されます。つまり、3〜4分ごとに音楽が終わったら、前のウィンドウを閉じて新しいファイルを開く必要があります。あまり便利ではありません。絶対にしないでください。ただし、現在のVLCインスタンスにキューを閉じたり再開したりせずに、キューに次の曲を登録させることはきちんとあります。

  • もう一つの利点:素晴らしいビデオゲームのように非常に重いアプリケーションを使用してください。アプリケーションを実行するには多くの時間とリソースが必要であり、私たち全員が誤ってアプリケーションを誤って実行するのがどれほど簡単かを知っています。シングルインスタンスモードで実行するようにアプリケーションを設定した後、再起動すると通常、最初のインスタンスのみがフォアグラウンドに戻されます。さらに、多くのゲーム開発者はそれを悪用して、ユーザーが複数のアカウントで同時にログインするのを防ぎます。

欠点

  • まあ、ご覧のようにデザインが悪い傾向があります。実際には通信が容易になるため(プロセス間通信、IPCは不要です)、一部の怠惰な開発者はアプリケーションを常に単一インスタンス状態に強制しようとする可能性があります。ほとんどのアプリケーションではこれは実際には問題にはなりませんが、PDFビューアではとんでもないことです。

  • 実際には欠点ではありませんが、状況は悪いです。このオプションは使用できません。お申し込みでない限り本物シングルインスタンスモードで実行する必要があり、常にユーザー選択のままにする必要があります(邪魔にならない場合はマルチインスタンスを使用)。

しかし、最終的にここで最大の関心事はユーザー体験。これがシングルインスタンスモードが一般的にオプションである理由です。あなたこのプログラムを使用してください。月に1〜2つのビデオファイルしか視聴していない場合は、VLCが複数のインスタンスで実行されていることを気にしません。音楽を100%聴くと、結局は音楽を聴きたくないので、こういう点に気を使うことになります。NVLCプロセスn-1非アクティブ。

おすすめ記事