Software > Cumulus y Cumulus MX

Mútiples instancias de Raspberry Pi + CumulusMX

(1/3) > >>

jantoni:
Uffff.....me ha costado....He estado toda la mañana con este tema y siempre tenía problemas con la segunda instancia de CumulusMX.

No terminaba de comprender porque si arrancaba una instancia, la segunda fallaba. Pero si la arrancaba a mano (sin ejecutarse como un servicio) funcionaba perfectamente.

El problema siempre estaba en el fichero CumulusMX.exe.lock que se generaba y no veía como forzar a la segunda instancia a que usara su propio fichero .lock, hasta que me ha llegado la luz.

Espero que con todo el tejemaneje que he tenido que hacer no haya liado las instrucciones......ya me lo diréis vosotros.



Para hacer que una segunda instancia funcione, tan solo hay que indicar otro directorio y otro puerto de trabajo, en lugar de /opt/CumulusMX y el puerto 8998 que funciona por defecto en este tutorial.

Vamos a usar el puerto 8999 en nuestra segunda instancia

Y el directorio /opt/CumulusMX2

Todo muy original *+* *+* *+* *+* *+*

Lo primero de todo tenemos que copiar todos los ficheros al nuevo directorio.

Lo podemos hacer como en la instalación, es decir, descomprimiendo el fichero descargado con CumulusMX en el nuevo directorio o a lo bruto.

Vamos a hacerlo de forma civilizada, que es descomprimiendo el fichero en el nuevo directorio. Así no tendremos problemas de si algún fichero se ha quedado con la configuración de la otra instancia

Suponemos que el fichero con la distribución de CumulusMX la bajaste al directorio /opt

Suponemos que el fichero de la distribución de CumulusMX sigue estando en ese directorio, ya que en el tutorial no se indicó que se borrase.

Ahora descomprimimos el fichero, PERO TENEMOS QUE DESCOMPRIMIRLO EN OTRO DIRECTORIO, porque de lo contrario machacaríamos el directorio de trabajo de la primera instancia. No problem......indicaremos a unzip que lo descomprima en otro sitio

Por si acaso, le decimos a Linux que se vaya al directorio /opt


--- Código: ---cd /opt
--- Fin del código ---

Descomprimimos el archivo en el directorio CumulusMX2


--- Código: ---sudo unzip -d CumulusMX2 CumulusMXDist3283a.zip
--- Fin del código ---

Esto conlleva un pequeño inconveniente que los datos estarán en /CumulusMX2/CumulusMX/.....

Pero no es ningún problema....es casi más claro para ir creando sucesivas instancias.

Tenemos que cambiar el nombre del fichero ejecutable de CumulusMX.exe a CumulusMX2.exe o hacer una copia con este último nombre. Es lo que haremos.


--- Código: ---sudo cp /opt/CumulusMX2/CumulusMX/CumulusMX.exe /opt/CumulusMX2/CumulusMX/CumulusMX2.exe
--- Fin del código ---


Ahora tenemos que editar el fichero que se encargará de arrancarlo

Vamos al directorio donde se encuentra el fichero que instalamos con la primera instancia


--- Código: ---cd /etc/systemd/system
--- Fin del código ---

Copiamos el fichero de arranque de la primera instancia y le ponemos otro nombre.....por ejemplo cumulusmx2.service


--- Código: ---sudo cp cumulusmx.service cumulusmx2.service
--- Fin del código ---

Editamos el fichero de arranque


--- Código: ---sudo nano cumulusmx2.service
--- Fin del código ---

En la línea Description ponemos la descripción que queramos para esta segunda instancia

El meollo está en la línea ExecStart

Con cuidado la editamos.....No vas a romper nada....si no funciona porque te has equivocado al escribir, siempre la puedes editar después

Tendremos esta línea si has seguido el tutorial


--- Código: ---ExecStart=/usr/bin/mono-service -d:/opt/CumulusMX CumulusMX.exe -service
--- Fin del código ---

Y tenemos que decirle que use otro directorio y otro puerto.

Así que lo cambiamos por


--- Código: ---ExecStart=/usr/bin/mono-service -d:/opt/CumulusMX2/CumulusMX CumulusMX2.exe -port 8999 -service
--- Fin del código ---

En la línea ExecStopPost cambiaremos


--- Código: ---ExecStopPost=/bin/rm -f /tmp/CumulusMX.exe.lock
--- Fin del código ---

Por


--- Código: ---ExecStopPost=/bin/rm -f /tmp/CumulusMX2.exe.lock
--- Fin del código ---

De este modo el fichero nos quedará como esto


--- Citar ---[Unit]
Description=CumulusMX service segunda instancia
Documentation=https://cumuluswiki.org/a/Main_Page
Wants=network-online.target
After=network-online.target

[Service]
User=root
Group=root
ExecStart=/usr/bin/mono-service -d:/opt/CumulusMX2/CumulusMX CumulusMX2.exe -port 8999 -service
Type=forking
ExecStopPost=/bin/rm -f /tmp/CumulusMX2.exe.lock

[Install]
WantedBy=multi-user.target
--- Fin de la cita ---



Grabamos y salimos con CTRL-X




Y por fin vamos terminando.

Ejecutamos lo necesario para que la segunda instancia se ejecute al arrancar la Raspi/ordenador y obedezca a las órdenas de parar/arrancar/reiniciar


--- Código: ---sudo systemctl enable cumulusmx2
--- Fin del código ---

Por si las moscas, vamos a recargar la configuración de systemctl


--- Código: ---systemctl daemon-reload
--- Fin del código ---

Y arrancamos manualmente la segunda instancia:


--- Código: ---sudo systemctl start cumulusmx2
--- Fin del código ---

Esperamos un minutejo para dejar que todo funcione y accedemos al interface web, pero dentro del puerto 8999



Ale.....a configurar la segunda estación.

El procedimiento sería el mismo para más instancias. Evidentemente tendremos que cambiar ficheros y directorios cambiando el 2 por 3, 4 o lo que queráis.

También podéis identificar la estación en los diferentes ficheros y directorios

En lugar de CumulusMX2 por CumulusMX_estacion1 y similares


jantoni:
Lo que es importante es que el fichero ejecutable

CumulusMX.exe

Solo se ejecute en una de las instancias con ese nombre

Por eso en este tutorial copiamos ese fichero a CumulusMX2.exe que es el ejecutable que invocamos al arrancarlo.

jantoni:
Ah, el número de instancias que se podrán abrir dependerá de nuestro ordenador

Como referencia, con una Raspberry Pi Zero W, que es la tarjeta con menos potencia de todas las Raspberry Pi que se venden actualmente, y dos instancias abiertas, la CPU está al 30%

Con una de las modernas 4 o 5 , dependiendo de la RAM, podría llegar a 10 con soltura.... Pero es pura especulación

Onuba2:
Trabajazo  plau2

De todas formas cumulusmx no es un programa muy exigente. Yo tengo 6 instancias en un portátil con sólo 2 GB de RAM y va con bastante soltura.

GeraltLK:
Gracias por el trabajo Jantoni.

Un pequeño errorcillo de escritura tienes, ya que no me funcionaba y di con él.

En la parte en la que comentas:

"Tenemos que cambiar el nombre del fichero ejecutable de CumulusMX.exe a CumulusMX2.exe o hacer una copia con este último nombre. Es lo que haremos."

En el código posterior pones Cumulus2.exe en lugar de CumulusMX2.exe
sudo cp /opt/CumulusMX2/CumulusMX/CumulusMX.exe /opt/CumulusMX2/CumulusMX/Cumulus2.exe

Corrigiendo eso a CumulusMX2.exe, funciona todo a la primera.

Un saludo

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa