Auparavant, j'avais réussi à implémenter PM2, mais pas actuellement.
Mon application de nœud fonctionne fonctionne très bien si je la démarre manuellement, mais rien de ce que je fais ne l'exécute via PM2, même si PM2 apparaît pour la démarrer. Voici ce que je veux dire:
Si j'exécute pm2 start server/index.js, la réponse dans le terminal se lit comme suit:
$ pm2 start server/index.js
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting D:\Program Files\nodeApps\service-management-api\server\index.js in fork_mode (1 instance)
[PM2] Done.*
Ensuite, le terminal imprime un tableau avec les informations de l'application. Il ne semble pas assez collé ici, donc je vais le lister:
App Name: index
id: 0
version: 1.0.0
mode: fork
pid: 8984
status: online
restart: 0
update 0s
cpu: 0%
mem: 26.0 MB
user: ME
watching: disabled
Il semble que le processus de nœud devrait être en cours d'exécution. Mais si j'entre immédiatement liste pm2 cela ne montre aucun processus en cours d'exécution. Si j'entre l'index d'arrêt pm2, il dit:
$ pm2 stop index
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2][ERROR] Process index not found
Alternativement, si j'essaie d'utiliser écosyst.config.js dans les commandes, j'obtiens des résultats similaires. Voici les commandes essayées:
pm2 reload ecosystem.config.js
pm2 start ecosystem.config.js
Exemple de résultat de l'exécution de ces commandes:
$ pm2 start ecosystem.config.js
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] Applications sm_api not running, starting...
[PM2] App [sm_api] launched (2 instances)
Et CLI imprime un tableau montrant deux instances avec le statut "en ligne" et en regardant "activé". Et pourtant, l'application ne fonctionne pas (lorsqu'elle est testée à partir du navigateur) et "pm2 show" renvoie:
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] <app name> doesn't exist
Des indices sur ce qui a mal tourné avec mon pm2?
Voici mon fichierosystem.config.js:
module.exports = {
apps : [{
name: 'sm_api',
script: 'server/index.js',
"log_date_format" : "YYYY-MM-DD HH:mm Z",
// Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
args: 'one two',
instances: 'max',
error_file : "C:\\pm2_system\\.pm2\\logs\\sm-api-error",
out_file: "C:\\pm2_system\\.pm2\\logs\\sm-api-out",
autorestart: true,
watch: "../",
max_restarts: 10,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
},
exec_mode: 'cluster'
}],
};
En cours d'exécution dans l'environnement Windows Server 2012. Notez que j'ai l'intention d'ajouter le package pm2-windows-service après avoir fait fonctionner pm2.
Pour contourner ce problème, j'ai utilisé ce qui suit:
pm2 start --no-daemon app.js