1

C# でサービスを作成しました。

サービスとしての Windows で問題なく動作します。また、次のコマンドを使用して、Raspberry pi で 1 回実行することもできます。

mono-service MyService.exe

ただし、サービスを制御したい、つまりデーモンとして実行したい。

現在、サービスを停止する方法を私が知っている唯一の方法は、「ps」コマンドを使用して mono プロセス ID 番号を取得し、「kill -9」を使用してプロセスを強制終了することです。

ただし、そうすると、サービスを再開できなくなるという不幸な結果が生じますか? そして、これまでのところ、再起動する唯一の方法は、最初に再起動することです。

これを行う正しい方法は、代わりに次のようにサービスを開始することです。

mono-service -l:/root/MyService.lock MyService.exe

-l:MyService.lock を使用すると、MyService.exe サービスのプロセス ID を保持するファイルが作成されるため、mono の pid ではなくその pid を強制終了できます。

ただし、これを行うと、サービスがまったく開始されず、Myservice.Lock ファイルが作成されません。sudo を追加しても違いはないので、権限の問題ではないと思いますが、Linux のスキルが限られているためわかりません。

私はすべての最新バージョンのソフトウェアを使用しており、これを Raspberry Pi B+ で実行しています。

私はここで立ち往生しています。どんな提案でも大歓迎です。ありがとうございました。

4

0 に答える 0