<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Miguelangel Parra</title>
    <description>The latest articles on DEV Community by Miguelangel Parra (@migpsi).</description>
    <link>https://dev.to/migpsi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F918996%2Fd1634aca-f257-41c7-98d4-8b6bd415769a.jpg</url>
      <title>DEV Community: Miguelangel Parra</title>
      <link>https://dev.to/migpsi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/migpsi"/>
    <language>en</language>
    <item>
      <title>Utilizando PM2 (Basico)</title>
      <dc:creator>Miguelangel Parra</dc:creator>
      <pubDate>Thu, 01 Sep 2022 06:33:03 +0000</pubDate>
      <link>https://dev.to/migpsi/utilizando-pm2-basico-110b</link>
      <guid>https://dev.to/migpsi/utilizando-pm2-basico-110b</guid>
      <description>&lt;h2&gt;
  
  
  ¿Qué es PM2 y para qué sirve?
&lt;/h2&gt;

&lt;p&gt;Básicamente PM2 es un gestor de procesos de aplicaciones para Node.js. Te permite gestionar con gran facilidad y de manera intuitiva aquellas aplicaciones que tengan como objetivo correr en un servidor con Node.js, aunque también es útil para entornos locales de desarrollo y prueba. &lt;/p&gt;

&lt;p&gt;Su magia mas relevante esta en que facilita mantener vivo de manera permanente cualquier proceso de Node.js , incluso con recarga automáticas en caso de reinícios del sistema. &lt;/p&gt;

&lt;p&gt;PM2 facilita enormemente la administración de tareas comunes de administración de sistema.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Dónde se puede utilizar PM2?
&lt;/h2&gt;

&lt;p&gt;PM2 se puede utilizar de forma estable en las 3 plataformas principales: Linux, MacOS y Windows. Siempre que tenga versiones iguales o superiores a Node.js 12.X instalado en el entorno. &lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Como instalar PM2?
&lt;/h2&gt;

&lt;p&gt;Instalar PM2 es tan fácil como instalar cualquier paquete de npm &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

npm install pm2 -g


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  ¿Cómo arrancar una aplicación con PM2?
&lt;/h2&gt;

&lt;p&gt;Hacer correr una aplicación con PM2 es tan fácil como posicionarse en el directorio en donde se encuentra el archivo principal de la aplicación objetivo y ejecutar por terminal:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

pm2 start app.js


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Siendo "app.js" la referencia al archivo raíz.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Cómo se puede saber qué aplicaciones están ejecutándose con pm2?
&lt;/h2&gt;

&lt;p&gt;Para listar todos los procesos y poder visualizarlos en formato lista debes ejecutar:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

pm2 list


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqsydd1ygt4vs3ugo0kl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqsydd1ygt4vs3ugo0kl.png" alt="Lista de procesos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Se puede monitorear lo que esta pasando en los procesos en ejecución con pm2?
&lt;/h2&gt;

&lt;p&gt;Si, puedes utilizar los siguientes comandos:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FUnitech%2Fpm2%2Fraw%2Fmaster%2Fpres%2Fpm2-monit.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FUnitech%2Fpm2%2Fraw%2Fmaster%2Fpres%2Fpm2-monit.png" alt="Monitor PM2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

pm2 monit
pm2 logs
pm2 logs APP-NAME       # Display APP-NAME logs
pm2 logs --json         # JSON output
pm2 logs --format       # Formated output

pm2 flush               # Flush all logs
pm2 reloadLogs          # Reload all logs


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  ¿Cómo puedo administrar los procesos con PM2?
&lt;/h2&gt;

&lt;p&gt;De forma intuitiva puedes utilizar los siguientes 4 comandos básicos para la gestión de procesos con PM2:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

pm2 start    &amp;lt;app_name|namespace|id|'all'|json_conf&amp;gt;
pm2 stop     &amp;lt;app_name|namespace|id|'all'|json_conf&amp;gt;
pm2 restart  &amp;lt;app_name|namespace|id|'all'|json_conf&amp;gt;
pm2 delete   &amp;lt;app_name|namespace|id|'all'|json_conf&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Se pueden resetear todos los procesos en ejecucion a la vez?
&lt;/h2&gt;

&lt;p&gt;Si, ejecutando :&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

pm2 reload all


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  ¿Qué pasa si el servidor se resetea?
&lt;/h2&gt;

&lt;p&gt;No pasa nada, pero debemos configurar el script de ejecución automática al arrancar el sistema:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

# Genera un Startup Script
 pm2 startup

# Congela los procesos de la lista que están ejecutándose al momento de resetearse
pm2 save

# Remueve el Startup Script
 pm2 unstartup


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Referencias:&lt;br&gt;
&lt;a href="https://www.npmjs.com/package/pm2" rel="noopener noreferrer"&gt;npm - pm2&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pm2.keymetrics.io/docs/usage/quick-start/" rel="noopener noreferrer"&gt;Pagina oficial de PM2 - Documentación&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>pm2</category>
    </item>
  </channel>
</rss>
