Jak migrować a.NET aplikacja Windows Service na Linuksa za pomocą mono?

Jakie byłoby najlepsze podejście do migracji usługi. NET Windows do Linuksa przy użyciu mono? Próbowałem uniknąć wykonywania aplikacji jako zaplanowanego polecenia.

Czy jest możliwe uzyskanie demona usługi/systemu (w Linuksie) takiego jak zachowanie?

Author: Raúl Roa, 2009-03-12

3 answers

Pod Linuksem, deamony są prostymi procesami w tle. Brak specjalnych metod kontroli (np. start(), stop()) są używane jak w Windows. Zbuduj swoją usługę jako prostą (konsolową) aplikację i uruchom ją w tle. Użyj narzędzia takiego jak daemonize aby uruchomić program jako demon Uniksa, i pamiętaj, aby określić mono jako program, który ma być aktywowany.

Jak zauważyli inni, mono-service jest hostem do uruchamiania usług zbudowanych z zestawu ServiceProcess. Usługi zbudowane dla systemu Windows mogą użyj tej metody, aby uruchomić niezmodyfikowany pod Linuksem. Możesz kontrolować usługę wysyłając sygnały do procesu (patrz strona man).

 31
Author: gimel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-28 09:19:43

Czy można użyć mono-usługi do owijania?

Zobacz to pytanie .

 3
Author: Marc Gravell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:48

W przeszłości robiłem to tak, aby skompilować aplikację. NET jako aplikację konsolową, a następnie na serwerze Linuksowym utworzyć skrypt startowy w katalogu initscripts.

Linux oczywiście nie ma Usług Windows i demonów, które są inicjowane z rc.katalogi d przy starcie są jego odpowiednikami. Większość rc.Skrypty d to uruchamianie różnych aplikacji na wątku w tle, więc nie ma w tym nic skomplikowanego. Jedyna dodatkowa praca jest to, że trzeba będzie napisać skrypt powłoki Linuksa, aby rozpocząć i jeśli chcesz zatrzymać usługę.

 2
Author: sipwiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-12 10:21:58