私たちは定期的にインタラクティブなキオスクCPUをリモートのphyyicalサイトに展開しており、各キオスク間でメディアアセットの夜間同期を実行するコンテンツアップデータアプリケーションを開発しましたホストされたCMS(linode.com上で動作する仮想化されたUbuntuサーバ)コンテンツ更新プログラムはC#/ .NETで作成され、Process.Start()を使用して子Unisonプロセスが生成されます。 Unisonは、秘密鍵を使用してSSH経由でリモートサーバに接続するように設定されています。Windows/Linux間の統一同期は転送中にランダムにハングアップ
ContentUpdater.exeから子プロセスとして生成されると、Unisonは転送中にリモートサーバーとの通信を停止し、無期限にハングすることが多いという問題があります。シンプルなレプロはありません - 時にはそれが動作しますが、頻繁にハングアップします。それはより大きいアップデート(400MB +)でより壊れやすいようですが、それは他の何よりも推測です。ハングしても、クライアント(Windows 7)のユニゾンプロセスは25%のCPU使用率を示しており、サーバーはユニゾンプロセスも実行していることを示しています。ネットワークアクティビティはありません。私はそれが常にプロセスを開始し、転送の途中で取得するので、それが接続していることを知っているが、同じ場所に2回ハングすることはありません。私はUnison-2.40.63.exeのネイティブWindowsバイナリビルドとリモートサーバ上の同じバージョンのunisonを実行しています。
Windows上のユニゾンコマンドラインは次のようになります。記録のために
Unison-2.40.63.exe -contactquietly -silent -batch -sshcmd "C:\KioskManagement\Apps\ssh2plink.bat" -sshargs "-p 22 -i C:\cygwin\home\someuser\.ssh\contentupdater-rsync-key.ppk" -ignore "Path {innovations,todaytomorrow,scale,mooreslaw,brilliantminds,askafab}" ssh://[email protected]//home/cms/base-preview/webapps/ROOT/applications C:\kioskdir\temp\applications -force ssh://[email protected]//home/cms/base-preview/webapps/ROOT/applications
、私はもともと(Windows上のCygwin経由)のrsyncを使用するために、コンテンツアップデータを執筆していたが、同じ問題を打ちました。 sshの輸送が問題の一部であるかどうかを確認するために、私はtried using rsync in server mode (rsyncd)しかし、吊り下げはその頭を後ろへと続けた。
この時点で、私は完全に困惑しています。この問題は他のサーバーでも確認されているので、Windows側の問題だと思っています。また、別のプロセスの中でProcess.Start()からUnison/rsyncを呼び出すときにのみ問題が発生すると思っています(UPDATE:コマンドラインから実行したときにreproを取得しました)。コマンドラインから直接実行すると失敗します。 Unison/rsyncもエラーにならないので、チェックするログファイルはありません(誰かが私がチェックできるリモートサーバ上の何らかのサーバ側のトレースやログファイルを知っていない限り)。完全公開:私はFreeBSDのオタクです。 Ubuntuについては貴重なものではありません)。
ありとあらゆる洞察力/アイデアやソリューションをお寄せいただきありがとうございます!
ベスト
これは答えではありません。 –