si vuole essere in grado di inviare un SIGTERM al processo in esecuzione:
kill <PID>
E il processo dovrebbe gestire la cosa per spegnere correttamente.
Purtroppo NET Nucleo non è ben documentato, ma è in grado di gestire segnali Unix (in un modo diverso da Mono). GitHub issue
Se si utilizza Ubuntu con Upstart, ciò che è necessario è quello di avere un init script che invia il il segnale uccidere su una richiesta di arresto: Example init script
aggiungere una dipendenza al progetto .json:
"System.Runtime.Loader": "4.0.0"
Questo vi darà la AssemblyLoadContext.
Quindi è possibile gestire l'evento SIGTERM:
AssemblyLoadContext.Default.Unloading += MethodInvokedOnSigTerm;
Nota:
Utilizzando Mono, il modo corretto di gestire sarebbe attraverso il UnixSignal: Mono.Unix.Native.Signum .SIGTERM
fonte
2016-07-10 12:34:19
Cura di condividere il codice: trasformare un'app di console di .NET Core in un demone di Ubuntu? – lasseschou
L'unica cosa che ho fatto è stata copiare uno script init predefinito da GitHub; la funzione di avvio chiama 'dotnet library.dll' e quella di arresto:' kill dotnet library.dll'. – user4388177