¿Cómo migrar una aplicación de servicio .NET Windows a Linux usando mono?

¿Cuál sería el mejor enfoque para migrar un servicio .NET Windows a Linux usando mono? He intentado evitar ejecutar la aplicación como un comando progtwigdo.

¿Es posible obtener un comportamiento similar a un daemon de servicio / sistema (en linux)?

En Linux, los demonios son procesos de fondo simples. No se usan métodos de control especiales (por ejemplo, start() , stop() ) como en Windows. Cree su servicio como una aplicación simple (consola) y ejecútelo en segundo plano. Use una herramienta como daemonize para ejecutar un progtwig como un daemon Unix, y recuerde especificar mono como el progtwig que se activará.

Como señalaron otros, el servicio monousuario es un host para ejecutar servicios construidos con el ensamblado ServiceProcess . Los servicios creados para Windows pueden usar este método para ejecutarse sin modificaciones bajo Linux. Puede controlar el servicio enviando señales al proceso (consulte la página de manual).

¿Puedes usar mono-servicio para envolverlo?

Ver esta pregunta

La forma en que lo hice en el pasado es comstackr la aplicación .Net como una aplicación de consola y luego en el servidor Linux crear una secuencia de comandos de inicio en el directorio initscripts.

Linux obviamente no tiene servicios de Windows y los daemons que se inician desde los directorios de rc.d al inicio son equivalentes. La mayoría de los scripts de rc.d lo hacen 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 comenzar y si quiere detener el servicio.