Cómo migrar a.NET Aplicación de servicio de Windows a Linux usando mono?


¿Cuál sería el mejor enfoque para migrar un Servicio. NET Windows a Linux usando mono? He estado tratando de evitar la ejecución de la aplicación como un comando programado.

¿Es posible obtener un demonio de servicio/sistema(en linux) como comportamiento?

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

3 answers

Bajo Linux, los deamons son procesos simples en segundo plano. Sin métodos especiales de control (p. ej. start(), stop()) se utilizan como en Windows. Cree su servicio como una aplicación simple (de consola) y ejecútelo en segundo plano. Utilice una herramienta como daemonize para ejecutar un programa como un demonio Unix, y recuerde especificar mono como el programa a ser activado.

Como han señalado otros, mono-service es un host para ejecutar servicios construidos con el ensamblado ServiceProcess. Los servicios creados para Windows pueden utilice este método para ejecutar sin modificar bajo Linux. Puede controlar el servicio enviando señales al proceso (consulte la página 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-28 09:19:43

¿Puede usar mono-service para envolverlo?

Ver esta pregunta.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:25:48

La forma en que lo he hecho en el pasado es compilar la aplicación.Net como una aplicación de consola y luego en el servidor Linux crear un script de inicio en el directorio initscripts.

Linux obviamente no tiene servicios de Windows y los demonios que se inician desde rc.d los directorios al inicio son su equivalente. La mayor parte de la rc.d scripts hacer es iniciar las diferentes aplicaciones en un hilo de fondo por lo que no hay nada realmente complicado. El único trabajo extra es que tendrá que escribir un script de shell de Linux para iniciar y si desea detener el servicio.

 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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-12 10:21:58