2011-07-27 81 views
3

基本上我有一個dotnet 4控制檯應用程序,我想轉換爲一個Linux服務。我已經在單聲道的最新版本上測試了控制檯應用程序,它可以工作。然後,我將控制檯應用程序轉換爲Windows服務,並嘗試使用mono-service2啓動它,但導致未找到有關圖像的錯誤。這似乎是在談論單聲道圖像或一些這樣的,而不是一個圖像文件,如果這是有道理的。看起來mono-service2是爲dotnet 2.0而不是dotnet 4.0構建的,我似乎無法找到dotnet 4.0版本的代碼。任何人都可以以正確的方向指向我,或者給我另一種方式來運行我的服務?我真的希望他們在webmin中顯示爲服務,以便我可以停止,啓動並檢查他們在Web上的狀態。在Linux上的mono-service2的Dotnet4服務

我不能發佈確切的錯誤,因爲我沒有在我身上,但我會在大約6小時後發佈它,如果它會幫助。

+0

只是更新錯誤實際上不再顯示。現在它只是立即返回,但什麼都不做。即使使用--debug標誌也不會顯示任何內容,並且不會創建或寫入我的應用程序的日誌文件。 – Seer

+0

另外,爲什麼我只是詢問關於mono-service2和dotnet 4的-2等級? – Seer

+0

你有什麼版本的單聲道,和什麼Linux發行版? – IanNorton

回答

6

我知道這2年遲,但我有同樣的問題。

進一步的調查表明,「單服務2」(在我的ArchLinux PC)映射到/usr/lib/mono/2.0這裏爲「單服務」映射到/usr/lib/mono/4.5

我希望這可以節省其他人的時間。

+0

謝謝!順便把我的頭髮撕掉了,順便說一句,你是怎麼知道它映射到哪裏的? – markmnl

0

如果程序只是需要在後臺運行而不是在控制檯上運行,還有其他方法可以在linux上啓動它,而無需使用單聲道的服務系統。

例如,通過一個shell腳本:

#!/bin/bash 
mono myprogram.exe [email protected] 1> ~/stdout.log 2> ~/stderr.log & 
+0

對不起,這是一個過程,即使我退出,我也想像服務一樣運行。我看過nohup,但我仍然需要能夠像服務一樣乾淨地關閉它。對於控制檯應用程序,我只需等待我按下輸入鍵,但顯然不能用nohup完成。好吧,不,我知道無論如何。作爲一種服務,它沒有關係,因爲它有一個關機方法。 – Seer

+0

我已經開始尋找http://stackoverflow.com/questions/3660039/success-with-start-stop-daemon-and-mono-service2作爲可能的解決方案 – Seer