![logo](https://i.imgur.com/ViLj5it.jpg) # Implementación PM2 y CRON. Implementación de la librería pm2 para la administración de procesos en servidores y prevalencia de aplicaciones en línea, aún después de casos de contingencia como reinicios inesperados o programados durante el mantenimiento y administración de los mismos. ## Instalación ### PM2 Para la instalación de PM2 bastara con ejecutar el siguiente comando: ```bash= npm install pm2 -g ``` --- ### Despliegue del Sistema #### Script js para el front En el caso del front requiere de http-server por lo que hacemos uso de la creación script de ejecución con el nombre "execScript.js" en el directorio `/grp/front/dist/` el cual debe contener lo siguiente: ```bash= const { exec } = require('child_process'); exec('http-server ./grp-extreme', (error, stdout, stderr) => { if (error) { console.error(`error: ${error.message}`); return; } if (stderr) { console.error(`stderr: ${stderr}`); return; } console.log(`stdout:\n${stdout}`); }); ``` #### Creacion de script de bash Creamos un archivo llamado "initservice.sh" en el directorio /home/< user> con el comando ```bash= nano initservice.sh ``` posteriormente escribimos las siguientes lineas para configurar los comandos a ejecutar al iniciar. ```bash= #!/bin/sh pm2 start /home/user/grp/front/dist/main.js pm2 start /home/user/grp/back/dist/execScript.js ``` #### Configurar scripts de inicio usando CRON CRON es un programador de trabajos que puede ejecutar ciertas tareas al reiniciar el sistema. Podemos crear fácilmente un trabajo de inicio usando CRON. Simplemente edite su crontab con el comando: ```bash= crontab -e ``` nos pedira seleccionar un editor de texto puede elegir el de su preferencia en este caso nano y posteriormente nos abrira el archivo siguiente: ![](https://i.imgur.com/z5A4QUb.png) En ese archivo deberemos agregar la siguiente linea: ```bash= @reboot /home/<user>/initservice.sh ``` ![](https://i.imgur.com/QrEgQUe.png) La directiva @reboot le dice a CRON que ejecute el script personalizado después de una operación de arranque / reinicio. Una vez modificado el archivo lo guardamos y nos dira que se instalo por lo que ya iniciará el script cada que arranque o reinicie el sistema. ### Notas extra. #### Administrando procesos ```bash= pm2 restart app_name pm2 reload app_name pm2 stop app_name pm2 delete app_name ``` Levantados de esta manera en ningun momento nos bloquea la terminal. ## Feedback Contacta a un desarrollador: - cesarg_00@outlook.com - r.garduno0509@gmail.com ## Autores - Ricardo Garduño Rojas - Cesar Garza Ceja