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
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