Come eseguire la migrazione di un’applicazione di servizio Windows .NET su Linux utilizzando mono?

Quale sarebbe l’approccio migliore per migrare un servizio Windows .NET su Linux usando mono? Ho cercato di evitare l’esecuzione dell’applicazione come comando pianificato.

È ansible ottenere un comportamento simile al daemon di servizio / sistema (in linux)?

Sotto Linux, i demoni sono semplici processi in background. Non vengono utilizzati metodi di controllo speciali (ad esempio start() , stop() ) come in Windows. Costruisci il tuo servizio come una semplice applicazione (console) ed eseguila in background. Utilizzare uno strumento come daemonize per eseguire un programma come daemon Unix e ricordarsi di specificare mono come il programma da triggersre.

Come notato da altri, mono-service è un host per eseguire servizi creati con l’assembly ServiceProcess . I servizi creati per Windows possono utilizzare questo metodo per eseguire non modificati sotto Linux. È ansible controllare il servizio inviando segnali al processo (consultare la pagina man).

Puoi usare il mono-service per avvolgerlo?

Vedi questa domanda

Il modo in cui l’ho fatto in passato è compilare l’applicazione .Net come applicazione console e quindi sul server Linux creare uno script di avvio nella directory initscripts.

Ovviamente Linux non ha i servizi Windows ei demoni avviati dalle directory rc.d all’avvio sono equivalenti. Tutto ciò che fa la maggior parte degli script rc.d è avviare le diverse applicazioni su un thread in background, quindi non c’è nulla di veramente complicato. L’unico piccolo lavoro extra è che dovrai scrivere uno script di shell Linux per iniziare e se vuoi interrompere il servizio.