7fb47ffde8
- SmartJson.smart_status devient Option<SmartStatus> avec #[serde(default)] → parsing non-bloquant si le champ est absent (ex: NVME_IOCTL_ADMIN_CMD échoue) - Service: suppression NoNewPrivileges, ajout AmbientCapabilities=CAP_SYS_ADMIN → smartctl hérite la capability via execve (kernel ≥ 5.2) - Nettoyage logs debug (suppression dump JSON brut) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
915 B
Desktop File
31 lines
915 B
Desktop File
[Unit]
|
|
Description=Nanometrics Agent — collecte de métriques système
|
|
After=network.target
|
|
Documentation=https://git.maison43gil.com/gilles/nano_metrics
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/local/bin/nanometrics-agent /etc/nanometrics/config.toml
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
DynamicUser=yes
|
|
SupplementaryGroups=disk
|
|
ConfigurationDirectory=nanometrics
|
|
ConfigurationDirectoryMode=0755
|
|
|
|
ProtectSystem=strict
|
|
ProtectHome=read-only
|
|
PrivateTmp=yes
|
|
# CAP_SYS_ADMIN est requis par le noyau pour NVME_IOCTL_ADMIN_CMD (lecture SMART NVMe).
|
|
# NoNewPrivileges est retiré car il efface les ambient capabilities sur exec (noyau ≥ 5.2),
|
|
# ce qui empêcherait smartctl enfant d'hériter la capability.
|
|
# CapabilityBoundingSet borne à la seule cap nécessaire.
|
|
CapabilityBoundingSet=CAP_SYS_ADMIN
|
|
AmbientCapabilities=CAP_SYS_ADMIN
|
|
|
|
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|