...
 
Description=EngraveCube Web interface service.
Documentation=
After=multi-user.target
[Service]
Type=simple
# User=pi
# Group=pi
WorkingDirectory=/usr/bin/engraveCube/E3_webUI
ExecStart=/usr/bin/engraveCube/E3_webUI/uxStart
[Install]
WantedBy=multi-user.target
Avvio automatico della E3_WebUI al boot.
===
Per consentire l'avvio automatico dell'interfaccia web di controllo utilizzo il gestore di sistema [systemd](https://wiki.archlinux.org/index.php/Systemd_(Italiano)).
## Esecuzione automatica del E³-WebUI al boot
Di seguito descrivo gli steps da seguire per attivare l'autorun al boot. <br> **Leggi le istruzioni fino in fondo prima di procedere**.
1. Copio lo _unit file_ `engravecube.service` nella cartella di sistema `/etc/systemd/system/`
```
sudo cp engravecube.service /etc/systemd/system/
```
2. Rendo lo _unit file_ eseguibile
```
chmod 777 /etc/systemd/system/engravecube.service
```
3. Abilito l'esecuzione automatica della E&#179;-WebUI come servizio di sistema.
```
sudo systemctl enable engravecube
```
Se tutto si è svolto correttamente la E&#179;-WebUI verrà avviata come servizio e riavviata automaticamente ad ogni reboot.
**N.B.** Lo _unit file_ `engravecube.service` è stato predisposto con l'idea che l'applicazione E&#179;-WebUI sia collocata (insieme al E&#179;-Sender e E&#179;-PostProcessor) nella cartella `/usr/bin/engraveCube/`. Si veda la guida all'istallazione per ulteriori dettagli.
~~**N.B.** Lo _unit file_ `engravecube.service` è stato predisposto con l'idea che l'applicazione E&#179;-WebUI sia eseguita come **utente pi**[^e8abd3c5] (`User=pi Group=pi`).~~
[^e8abd3c5]: ~~Eseguo la WebUi come utente _pi_ per ovviare all'errata installazione delle dipendenze python (vedi file `requirements.txt`) che sono state installate nella home-directory dell'utente invece che in maniera globale a tutti gli users.~~
Problema risolto loggandosi come _root_ (`sudo su`) ed andado ad installare manualmente `pip install <pacchetto>` i pacchetti mancanti (_Flask-WTF_)
## Start/Stop/Restart del servizio di controllo della E&#179;
Configurato il gestore di sistema _Systemd_, l'interfaccia web di controllo verrà avviata automaticamente al al boot. Posso però controllare l'esecuzionie del servizio attraverso l'utility `service`
Per **avviare manualmente** il servizio E&#179;-WebUI utilizzo il comando
```
sudo service engravecube start
```
Per **arrestare** il servizio E&#179;-WebUI utilizzo il comando
```
sudo service engravecube stop
```
Per **riavviare** il servizio E&#179;-WebUI utilizzo il comando
```
sudo service engravecube start
```
Per conoscere lo stao del servizio E&#179;-WebUI utilizzo il comando
```
sudo service engravecube status
```
Per disabilitare il servizio in maniera che non venga più eseguito automaticamente al boot
```
sudo systemctl disable engravecube
```
## Modifiche allo unit file.
In caso di modifica allo _unit file_ devi eseguire l'aggiornamento della configurazione del gestore di sistema _Systemd_ attraverso il comando:
```
sudo systemctl daemon-reload
```
## References e link utili
* [Systemd (Italiano)](https://wiki.archlinux.org/index.php/Systemd_(Italiano))
* [Understanding Systemd Units and Unit Files ](https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files)