# Serviços systemd

<!-- BOOKSTACK-DOCUMENT-RELEASE:BEGIN -->
# Serviços systemd

| Campo | Valor |
| --- | --- |
| Distribuição | WCT Portuguese — OpenC5ISR |
| Produto | OpenC5ISR |
| Versão | 0.15.1 |
| Implantação | `openc5isr-pt.wallacecorptech.com` |
| Fonte | `/srv/wct/releases/OpenC5ISR-v0.15.0-20app-pt` |
| Evidência | Definições de serviço da distribuição e do host legível |
| Impressão digital da fonte | `e92dc1580aa26f7545815bcf40300b21bc5485b0a2ae46a715538a48365cc801` |
| Estado | Linha de base gerada — revisão humana obrigatória |

> **Limite de verificação:** Esta página combina orientação de projeto da plataforma com evidências estáticas da distribuição. Ela não comprova que todas as interfaces detectadas estejam habilitadas, acessíveis, seguras ou operacionais no ambiente implantado.

## Unidades de serviço observadas

| Unidade | Descrição | Usuário | Diretório de trabalho | ExecStart | Reinício | Evidência |
| --- | --- | --- | --- | --- | --- | --- |
| opencybersec-agent.service | OpenCyberSec Defensive Edge Sensor Agent | opencybersec | `—` | `/opt/opencybersec-agent/opencybersec_agent.py --config /etc/opencybersec-agent.json` | on-failure | `edge/opencybersec/systemd/opencybersec-agent.service` |
| openlvc-ais-bridge.service | OpenLVC AIS NMEA Bridge | rocketman | `/opt/opensof/edge/openlvc` | `/usr/bin/python3 /opt/opensof/edge/openlvc/ais_nmea_bridge.py --opensof ${OPENSOF_URL} --token [REDACTED] --bind 0.0.0.0 --port 10110` | on-failure | `edge/openlvc/systemd/openlvc-ais-bridge.service` |
| openlvc-dis-bridge.service | OpenLVC IEEE DIS UDP Bridge | rocketman | `/opt/opensof/edge/openlvc` | `/usr/bin/python3 /opt/opensof/edge/openlvc/dis_udp_bridge.py --opensof ${OPENSOF_URL} --token [REDACTED] --bind 0.0.0.0 --port 3000` | on-failure | `edge/openlvc/systemd/openlvc-dis-bridge.service` |
| openlvc-flightgear-bridge.service | OpenLVC FlightGear UDP Bridge | rocketman | `/opt/opensof/edge/openlvc` | `/usr/bin/python3 /opt/opensof/edge/openlvc/flightgear_bridge.py --opensof ${OPENSOF_URL} --token [REDACTED] --bind 0.0.0.0 --port 5505` | on-failure | `edge/openlvc/systemd/openlvc-flightgear-bridge.service` |
| openlvc-rti-gateway.service | OpenLVC OpenBus to HLA RTI Gateway | rocketman | `/opt/opensof/edge/openlvc` | `/usr/bin/python3 /opt/opensof/edge/openlvc/rti_openbus_gateway.py --opensof ${OPENSOF_URL} --token [REDACTED] --federation ${OPENLVC_FEDERATION} --federate ${OPENLVC_FEDERATE} --sidecar-command ${OPENLVC_RTI_SIDECAR_COMMAND}` | on-failure | `edge/openlvc/systemd/openlvc-rti-gateway.service` |
| openpnt-phc2sys@.service | OpenPNT linuxptp phc2sys instance %i | root | `—` | `/opt/openpnt/bin/openpnt-linuxptp run phc2sys --instance /etc/openpnt/linuxptp/instances/%i.json --bin-dir /opt/openpnt/linuxptp/bin` | on-failure | `edge/openpnt-linuxptp/systemd/openpnt-phc2sys@.service` |
| openpnt-ptp4l@.service | OpenPNT linuxptp ptp4l instance %i | root | `—` | `/opt/openpnt/bin/openpnt-linuxptp run ptp4l --instance /etc/openpnt/linuxptp/instances/%i.json --bin-dir /opt/openpnt/linuxptp/bin` | on-failure | `edge/openpnt-linuxptp/systemd/openpnt-ptp4l@.service` |
| openpnt-ts2phc@.service | OpenPNT linuxptp ts2phc instance %i | root | `—` | `/opt/openpnt/bin/openpnt-linuxptp run ts2phc --instance /etc/openpnt/linuxptp/instances/%i.json --bin-dir /opt/openpnt/linuxptp/bin` | on-failure | `edge/openpnt-linuxptp/systemd/openpnt-ts2phc@.service` |
| openrf-agent.service | OpenRF Radio Agent | __OPENRF_USER__ | `/opt/openrf-agent` | `/usr/local/bin/openrf-agent --config /etc/openrf/openrf-agent.json` | always | `openrf/agent/systemd/openrf-agent.service` |
| openc5isr-wct-pt.service | OpenC5ISR WCT Portuguese | wct-ops | `/srv/wct/instances/openc5isr-pt/current` | `/usr/local/bin/npm start` | on-failure | `/etc/systemd/system/openc5isr-wct-pt.service` |

## Lista de implantação autoritativa

- Copiar unidades para /etc/systemd/system somente de fonte de versão/implantação revisada.
- Executar systemctl daemon-reload após alterações e habilitar/iniciar a instância pretendida.
- Usar uma conta de serviço dedicada, sem login, com acesso somente leitura à versão e apenas permissões necessárias ao estado persistente.
- Definir WorkingDirectory e caminhos absolutos em ExecStart; não depender de perfil de shell interativo.
- Adicionar dependências cientes de saúde e limites de reinício para que um backend com falha não cause tempestade de reinícios.

## Comandos de verificação

```bash
systemctl cat <unit>.service
systemctl status <unit>.service --no-pager
systemctl show <unit>.service -p User -p Group -p WorkingDirectory -p ExecStart
journalctl -u <unit>.service -n 200 --no-pager
```
<!-- BOOKSTACK-DOCUMENT-RELEASE:END -->

---

## Notas do Mantenedor

<!-- BOOKSTACK-DOCUMENT-RELEASE:NOTES-BEGIN -->
Adicione aqui notas de implantação revisadas por pessoas, correções, decisões, capturas de tela e links. O conteúdo fora do bloco gerado é preservado nas próximas execuções.
<!-- BOOKSTACK-DOCUMENT-RELEASE:NOTES-END -->