Arrêter l'exécution d'un dotnet core site web fonctionnant sur le kestrel
Le déploiement d'une nouvelle version d'une œuvre existante .net de base du site web. Comment dois-je d'abord en toute sécurité arrêt de l'ancienne kestrel app?
Voici un exemple de ce que je voudrais écrire (Pseudo script de déploiement):
dotnet stop mysite/mysite.dll <---- this line here
mv mysite/mysite.bak/
cp newly-published-mysite/mysite/
dotnet run mysite/mysite.dll
killall dotnet
semble un peu dangereux. Comment serait-il fonctionner si j'ai été l'hôte de deux petits sites sur une boîte?
OriginalL'auteur Craigt | 2017-04-09
Vous devez vous connecter pour publier un commentaire.
En conséquence à cette discussion, il n'y a pas de moyen sûr pour arrêter Kestrel maintenant. Vous avez besoin de trouver un PID par le nom de votre fichier dll et tuer:
Dans le cas de l'arborescence, vous devez manuellement grep tous les Id d'enfant et d'appel
kill
pour chaque. Comme cela a été fait dansMicrosoft.Extensions.Interne.ProcessExtensions.KillTree méthode (corrigez-lien de la discussion).
dotnet run
ne pas résilier enfantexactement ce que je voulais pour un dev de script. J'ai aussi trouvé que c'était de ramasser le grep processus de tuyau et ajoutée à l'enlever (avant awk).
| grep -v 'grep'
OriginalL'auteur Ilya Chumakov
J'ai décidé d'utiliser le superviseur de surveiller et de gérer le processus. Voici un excellent article sur le set up.
Il permet le contrôle de certaines applications dotnet comme ceci:
Et il a un énorme avantage dans la mesure où il peut essayer de redémarrer le processus, si elle tombe, ou lorsque le système redémarre... pour quelque raison que ce soit.
OriginalL'auteur Craigt