broadcast/README.md

1.8 KiB

Broadcast

English version

Per controllare l'esecuzione di un programma via web.

Descrizione

broadcast è una semplice applicazione web per controllare un altro programma in esecuzione. Ci sono 3 modi in cui questo può avvenire:

  1. direttamente, specificando percorso assoluto del binario e tutte le opzioni
  2. attraverso una unit systemd, specificando l'opzione -systemd (e opzionalmente -systemd-as-user per indicare che la unit è di tipo user)
  3. controllando un docker container già in esecuzione (n.b.: il container deve avere un nome, specificato con --name e deve già esistere (può essere in pausa))

Il programma espone un'interfaccia web, di default su 0.0.0.0:8080, controllabile con il parametro -addr a riga di comando.

Esempi

Per scopi di test, questa repository include un programma go che stampa una stringa ogni secondo: echo. Lo useremo negli esempi successivi.

1. direttamente

broadcast /path/to/echo

2. unit systemd

Assumendo che esista una unit echo.service

broadcast -systemd -systemd-as-user echo.service

3. container docker

Assumendo che già esista un container docker, lanciato ad esempio con

docker run --name echo --rm -ti echo
broadcast -docker echo

Sviluppo

Il progetto include un Makefile per facilitare alcuni compiti. Si può iniziare una sessione di sviluppo, innanzitutto facendo il build delle immagini necessarie

make dev-build

Si può quindi lanciare uno stack docker compose così

make dev

Per fare la build degli artefatti (verranno creati in bin/) (libsystemd-dev è un prerequisito)

make build

Licenza

GPL-v3 o successive.