問題タブ [mono-service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mono - クラッシュしたモノラルアプリケーションからスタックトレースをキャプチャし、モノラルサービスを介してLinuxでサービスとして実行します
時々クラッシュするアプリケーションをUbuntuで実行しています。クラッシュが発生したときにスタックトレースをキャプチャしたいと思います。これは可能ですか?
私は次のようにアプリを起動しています:
モノサービス-m:logfile.out application.exe
mono - mono-service2 デーモンを開始できません - 「/usr/local/lib/mono/2.0/mscorlib.dll」にメソッドがありません
mono を使用して C# でデーモンを作成しています。これまでのところ、ロジックとすべてを実装し、コンソール プログラムで問題なくテストすることができました。私は Windows XP で MonoDevelop 4.0.9 を使用しており、そこでコンパイルしてから、ファイルを CentOS に移動してテストします。CentOS で mono 3.0.12 を手動でコンパイルしたので、問題なくコンソール プログラムをテストできます。私のプロジェクトは、ロジックを含む複数のライブラリ (.net dll ファイル) で構成されており、2 つの実行可能プロジェクトで同じファイルを使用しています。コンソールとデーモン。
コンソールはスムーズに実行されますが、デーモンは開始時に次のエラーを出力します。
に対してすべてのプロジェクトをコンパイルしたので、これは奇妙Mono / .Net 4.0
です。強調しておくと、両方の実行で同じライブラリ ファイルのリストが共有されます。唯一の違いは、実行可能ファイルConsole.exe
とWSSDaemon.exe
.
そして、これが私がそれらの両方を呼び出す方法です:
wssd_log.txt は、上記で報告されたエラー メッセージを見つけた場所です。誰が私に問題が何であるかについてのヒントを教えてもらえますか?
linux - C# デーモンおよびモノ サービスでの System.Diagnostics.EventLog の使用
C# とモノ (フラー) を使用して、最初のデーモンを実装することができました。1つのことを除いて、すべて正常に機能しています。サービスがシステムのログ ベースにログインするための Windows では、System.Diagnostics.EventLog
クラスを使用する必要があります。このクラスにはWriteEntry
、文字列をシステム ログに記録するという名前のメソッドが付属しています。同じクラスが mono に存在し、問題なくコンパイルされますが、何もしないようです。あるいは、どこを見ればいいのかわからないのかもしれません。この方法で生成されたログはどこに行くのですか?
c# - モノ サービスを使用した Linux での Windows DOTNET サービスのテスト
mono-service を使用して Linux で Windows .NET-4.0 サービスを実行しようとしています。モノなどでコンパイルされていません。私は100%実行可能ではありませんが、試すことができると思いました(バイナリ互換など、実行可能だと思われますか?)。私が間違っている場合は修正してください。
一部のdllが見つからないというエラーが表示されます。それらはシステム内にありますが、見つかりません。これが1つです。
パスなどを追加してみましたが変わりません。
また
またはLD_LIBRARY_PATHが空だったので、試しました
出力では常に次のようになります。
したがって、基本パスでそれを見つけるのではなく、GAC を調べるだけです。なぜそこに見えないのですか?GAC の前に MONO_PATH を調べる必要がありますか? 何か不足していますか?
2 つの VM でテスト済み: Ubuntu 13.04 とクリーンなライブ Mint 14。
編集、情報追加 9/10:
わかりました、Ubuntuにはバージョン2.10か何かがありました。最新のソースで試しました
出力ログ:
良くなったように見えますが、まだシャットダウンしています。
ログの最後にlibMonoPosixHelper が見つかり
Mono: DllImport loaded library 'libMonoPosixHelper.so'.
ますが、Posix では失敗し
Mono: AOT failed to load AOT module /usr/local/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll.so: /usr/local/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll.so: cannot open shared object file: No such file or directory
ます。それがシャットダウンの原因となる主なエラーですか?
Mono.Posix.dll は以前にロードされています... ログを読んでいるときに何かが欠けているかどうかはわかりません。
9/30編集
OK、CrunchBang vm で試してみましたが、Mono はありません。接頭辞 /home/ejpb/mono でインストールされた tarball (必要なスペース、/home パーティション上)。
質問:私はそれを正しくやっていますか?Windows のインストール ディレクトリから exe と dll をコピーしました。どうにかして Linux で msi ファイルを使用できますか (そこから抽出します)? それは何かを変えるでしょうか?
走った
そしてout.logに入った:
など、その部分は今では問題ないようです。
また、かなりの数の「見つかりません」
Mono: AOT NOT FOUND: System.Security.Cryptography.RNGCryptoServiceProvider:RngClose (intptr) を取得しました。
Mono: AOT が見つかりません: System.Threading.InternalThread:Thread_free_internal (intptr)。
等
MoMA - Mono 2.8 (4.0 Profile) を試してみました。それは 3.2.3 でも正確ですか?
私が得た:
おそらく、このサービスを実行することはできませんか? log4net にはいくつかの p/invoke などがあります。
c# - mono-service2 が OSX でロック ファイルを作成しない
Mono 3.2.4 で OSX 10.9 を実行しています。
デーモンとして実行したいシンプルなアプリがありますが、モノサービスは PID を含むロック ファイルを作成しません。/tmp と、使用時に取得する一時パスを検索してみました:
返されたもの:
しかし、運がありません。これはモノのバグでしょうか?
mono-service2 DaemonTest.exe
およびを使用しmono-service2 l:myLockFile.lock DaemonTest.exe
てデーモンを開始しました。システム モニターでモノ ガベージ コレクターが実行されているのを確認できるため、デーモン自体が実行されます。
よろしく
c# - mono-service2 タイプ 'System.Runtime.Versioning.TargetFrameworkAttribute' を読み込めませんでした
mono を使用して Linux で実行することを念頭に置いて、C# .NET Windows サービスを作成しました。
- サービスは .NET Framework 4 Client Profile を対象としています
- .exe と .dll に対して Mono Migration Analyzer (MoMA) を実行しましたが、すべて問題ないようです。
- VS2010を使用してWindows上に構築された.exe
- Ubuntu x64 12.04 上の Mono JIT コンパイラ バージョン 2.10.8.1
バイナリをコピーした後、次を実行します。
すぐに戻ります。実行ps -a
しているようには見えず、次のように表示されsyslog
ます。
私が対象としている .NET のバージョンを mono がサポートしていないようです。私に何ができる?
c# - mkbundle'd アプリのモノサービス
Linux で Mono を使用して実行したい Windows サービスがあります。モノサービスを使用してサービスとして実行できますが、これは正常に機能します。
mkbundle
また、エンドユーザーが Mono を自分でインストールする必要がないように、アプリケーションの展開を容易にしたいと考えています。
結果のネイティブ バイナリを Linux でサービスとして実行しながら、イベントOnStart
とOnStop
イベントを処理するための推奨される方法は何ですか?
c# - Raspberry pi で mono-service -l:file.lock を実行できない
C# でサービスを作成しました。
サービスとしての Windows で問題なく動作します。また、次のコマンドを使用して、Raspberry pi で 1 回実行することもできます。
ただし、サービスを制御したい、つまりデーモンとして実行したい。
現在、サービスを停止する方法を私が知っている唯一の方法は、「ps」コマンドを使用して mono プロセス ID 番号を取得し、「kill -9」を使用してプロセスを強制終了することです。
ただし、そうすると、サービスを再開できなくなるという不幸な結果が生じますか? そして、これまでのところ、再起動する唯一の方法は、最初に再起動することです。
これを行う正しい方法は、代わりに次のようにサービスを開始することです。
-l:MyService.lock を使用すると、MyService.exe サービスのプロセス ID を保持するファイルが作成されるため、mono の pid ではなくその pid を強制終了できます。
ただし、これを行うと、サービスがまったく開始されず、Myservice.Lock ファイルが作成されません。sudo を追加しても違いはないので、権限の問題ではないと思いますが、Linux のスキルが限られているためわかりません。
私はすべての最新バージョンのソフトウェアを使用しており、これを Raspberry Pi B+ で実行しています。
私はここで立ち往生しています。どんな提案でも大歓迎です。ありがとうございました。