2

Macの起動時に相乗効果をロードして、マウス/キーボードを使用してログインできるようにしようとしています。これらの指示に従いました

http://sourceforge.net/p/synergy2/discussion/199580/thread/76cf630a

Synology がインストールされている場所/Applications/Synergy.app/

plistファイルは次のようになります

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>KeepAlive</key> <true/>
    <key>Label</key> <string>net.sourceforge.synergy2.loginwindow</string>
    <key>LimitLoadToSessionType</key> <string>LoginWindow</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/Synergy.app/Contents/MacOS/synergyc</string>
        <string>-f</string>
        <string>-1</string>
        <string>--name</string>
        <string>mini</string>
        <string>--debug</string>
        <string>WARNING</string>
        <string>192.168.1.200</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

しかし、これらのエラーが発生しています/var/log/system.log

synergyc[220]: 3891612: (connect_and_check) Untrusted apps are not allowed to connect to or launch Window Server before login.

ファイルはすべて正しく所有されています

-rwxr-xr-x  1 root  wheel   893040 May  2 21:07 Synergy
-rwxr-xr-x  1 root  wheel  3999988 May  2 21:07 synergyc
-rwxr-xr-x  1 root  wheel  4269168 May  2 21:07 synergys

検疫を解除しました

xattr -d com.apple.quarantine /Applications/Synergy.app/Contents/MacOS/*

他に何をすべきかわかりませんか?なぜOSXはそんなに難しいのですか? 他に何を試すことができますか?

psフックメソッドを試しましたが、それもうまくいきませんでした。このアプローチはよりきれいに見えます。

4

1 に答える 1

4

デーモンとエージェントに関する Apple の開発者テクニカル ノートから:

Mac OS X 10.5 以降で、リスト 9 に示すようなメッセージが表示された場合、おそらくコード署名によってシステムにアプリケーションを「信頼」させることが解決策であると誤って考えるかもしれません。

リスト 9: ログイン前の信頼メッセージ

Untrusted apps are not allowed to connect to or launch Window Server before login.

しかし、そうではありません。このメッセージは、間違ったコンテキストからウィンドウ サーバーに接続しようとしていることを示しています。ユーザーがログインする前に、プレログイン コンテキストの外部からグローバル ウィンドウ サーバー サービスに接続しようとすると、このメッセージが表示されます。通常、これはデーモンからウィンドウ サーバーを使用しようとしていることを意味します。

ウィンドウ サーバーにプログラムを信頼させることによって、これを修正しようとするべきではありません。そうすることは、将来的に他の問題を引き起こすだけです。たとえば、デーモンからウィンドウ サーバーに正常に接続した場合でも、前述のウィンドウ サーバーのライフサイクルの問題に対処する必要があります。

代わりに、正しいコンテキストで実行されるようにコードを変更して、この問題を修正する必要があります。ログイン前のコンテキストでウィンドウ サーバーに接続する必要がある場合は、ログイン前の launchd エージェントを作成します。この例については、サンプル コード 'PreLoginAgents'を参照してください。

これを行う「正しい」方法には、相乗効果自体の書き直しが含まれるように思えます (上記のサンプル コードのリンクを参照してください)。これに関するシナジー バグ レポートが 3 年前に提出されましたが、実際のアクションはありませんでした...修正したい場合は、それを行うのはあなた次第だと思います。

于 2013-09-04T02:48:52.013 に答える