Meteoclimatic
Software => Cumulus y Cumulus MX => Mensaje iniciado por: jantoni en 11 de Mayo de 2024, 11:04:38
-
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
cd /opt
Descomprimimos el archivo en el directorio CumulusMX2
sudo unzip -d CumulusMX2 CumulusMXDist3283a.zip
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.
sudo cp /opt/CumulusMX2/CumulusMX/CumulusMX.exe /opt/CumulusMX2/CumulusMX/CumulusMX2.exe
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
cd /etc/systemd/system
Copiamos el fichero de arranque de la primera instancia y le ponemos otro nombre.....por ejemplo cumulusmx2.service
sudo cp cumulusmx.service cumulusmx2.service
Editamos el fichero de arranque
sudo nano cumulusmx2.service
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
ExecStart=/usr/bin/mono-service -d:/opt/CumulusMX CumulusMX.exe -service
Y tenemos que decirle que use otro directorio y otro puerto.
Así que lo cambiamos por
ExecStart=/usr/bin/mono-service -d:/opt/CumulusMX2/CumulusMX CumulusMX2.exe -port 8999 -service
En la línea ExecStopPost cambiaremos
ExecStopPost=/bin/rm -f /tmp/CumulusMX.exe.lock
Por
ExecStopPost=/bin/rm -f /tmp/CumulusMX2.exe.lock
De este modo el fichero nos quedará como esto
[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
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
sudo systemctl enable cumulusmx2
Por si las moscas, vamos a recargar la configuración de systemctl
systemctl daemon-reload
Y arrancamos manualmente la segunda instancia:
sudo systemctl start cumulusmx2
Esperamos un minutejo para dejar que todo funcione y accedemos al interface web, pero dentro del puerto 8999
(https://forum.meteoclimatic.net/index.php?action=dlattach;topic=5024.0;attach=7649;image)
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
-
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.
-
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
-
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.
-
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
-
No sabes lo difícil que se me hace escribir CumulusMX *+* *+*
-
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
Corregido....muchas gracias
Y me alegro saber que el resto funciona.....esto me dio muchos quebraderos de cabeza y 3 pantallas grandes, moviendo cosas de un lado a otro....una locura
-
No sabes lo difícil que se me hace escribir CumulusMX *+* *+*
Llevo usando CumulusMX desde las primeras betas y me pasa los mismo *+* *+* *+*
-
Una duda que me surge ahora Jantoni.
Tengo la segunda estación en CumulusMX pero hasta hoy no tenía tiempo para pasarla a mateoclimatic.
Mi duda es como renombrar la plantillas y similares en los pasos que hay que seguir para enviar datos a meteoclimatic, porque en la guia inicial en la carpeta por defecto ya están los archivos meteoclimaticT.html y meteoclimatic.html de la primera estación y no se si la solución es poner los dos nuevos archivos con un 2 (por ejemplo meteoclimaticT2.html y meteoclimatic2.html) para la segunda estación u hacerlo dentro de otro directorio en esa ruta.
Antes de liarla y fastidiar la primera estación que ya está funcionando bien, pues pregunto por si las moscas.
-
Puedes renombrarlos perfectamente.
No dejar de ser una plantilla y con el nombre que te apetezca.
La otra solución es pasar las plantillas a los directorios de trabajo de cada instancia.
Lo que te resulte más sencillo.
-
Yo tengo un directorio por cada estación y así no mezclo. Y cada plantilla con el nombre de la estación.
-
Pues perfecto. Eso hice al final, un directorio distinto.
Ya tengo ambas por cumulus en la pi zero 2W y enviando datos sin problemas
Gracias jantoni y Onuba2