fix systemd job
This commit is contained in:
@@ -103,7 +103,7 @@ sudo systemctl status vw-eu-data-act-exporter
|
|||||||
| `vins` | List of vehicle VINs to scrape |
|
| `vins` | List of vehicle VINs to scrape |
|
||||||
| `scrape_interval_minutes` | Poll interval per vehicle. The portal only delivers new datasets for "continuous" data requests roughly every ~15 min anyway - a shorter interval will not yield fresher data, but will increase the login frequency against the account |
|
| `scrape_interval_minutes` | Poll interval per vehicle. The portal only delivers new datasets for "continuous" data requests roughly every ~15 min anyway - a shorter interval will not yield fresher data, but will increase the login frequency against the account |
|
||||||
| `persist_raw_json` | `False` by default. When set to `True`, the JSON extracted from every downloaded dataset is written to disk (one file per VIN per scrape), including the JSON extracted from `_no_content_found.zip` placeholders when they carry one. ZIP files are never written to disk, only the extracted JSON - useful while tuning the field mapping in `vw-eu-data-act-exporter.py`. Not needed for normal operation |
|
| `persist_raw_json` | `False` by default. When set to `True`, the JSON extracted from every downloaded dataset is written to disk (one file per VIN per scrape), including the JSON extracted from `_no_content_found.zip` placeholders when they carry one. ZIP files are never written to disk, only the extracted JSON - useful while tuning the field mapping in `vw-eu-data-act-exporter.py`. Not needed for normal operation |
|
||||||
| `persist_raw_json_dir` | Directory the raw JSON files are written to when `persist_raw_json` is enabled (default: `./raw_json`, relative to the working directory) |
|
| `persist_raw_json_dir` | Directory the raw JSON files are written to when `persist_raw_json` is enabled. Defaults to `$STATE_DIRECTORY` (set automatically by the systemd unit's `StateDirectory=vw-eu-data-act-exporter`, i.e. `/var/lib/vw-eu-data-act-exporter`), falling back to `./raw_json` for ad-hoc/local runs outside systemd |
|
||||||
|
|
||||||
Prerequisite in the portal (one-time, in a browser): connect vehicle ->
|
Prerequisite in the portal (one-time, in a browser): connect vehicle ->
|
||||||
"Get customised data" -> enable continuous, 15-minute frequency (see the
|
"Get customised data" -> enable continuous, 15-minute frequency (see the
|
||||||
@@ -136,3 +136,11 @@ be independent of, and significantly shorter than, `scrape_interval_minutes`
|
|||||||
- `WARNING ... Unknown enum value`: a new, not-yet-listed value for an enum
|
- `WARNING ... Unknown enum value`: a new, not-yet-listed value for an enum
|
||||||
metric - the state is exported as `UNKNOWN`, extend the list in the
|
metric - the state is exported as `UNKNOWN`, extend the list in the
|
||||||
source code if needed.
|
source code if needed.
|
||||||
|
- Service fails immediately with `status=226/NAMESPACE` /
|
||||||
|
`Failed to set up mount namespacing`: usually a stale unit file from
|
||||||
|
before `StateDirectory=` was introduced (e.g. still using
|
||||||
|
`ReadWritePaths=.../raw_json` pointing at a directory that was never
|
||||||
|
created). Re-copy the current `vw-eu-data-act-exporter.service`, run
|
||||||
|
`sudo systemctl daemon-reload`, and restart - `StateDirectory=` makes
|
||||||
|
systemd create that directory (with correct ownership) itself, no manual
|
||||||
|
`mkdir`/`chown` needed.
|
||||||
|
|||||||
@@ -48,7 +48,10 @@ scrape_interval_minutes = 15
|
|||||||
# carry one. ZIP files themselves are never written to disk. Disabled by
|
# carry one. ZIP files themselves are never written to disk. Disabled by
|
||||||
# default, since the exporter is designed to be stateless (see README.md).
|
# default, since the exporter is designed to be stateless (see README.md).
|
||||||
persist_raw_json = False
|
persist_raw_json = False
|
||||||
persist_raw_json_dir = "./raw_json"
|
# Under the systemd unit, StateDirectory=vw-eu-data-act-exporter makes
|
||||||
|
# systemd export $STATE_DIRECTORY (an already-created, correctly-owned
|
||||||
|
# directory) - fall back to a relative path for ad-hoc/local runs.
|
||||||
|
persist_raw_json_dir = os.environ.get("STATE_DIRECTORY", "./raw_json")
|
||||||
|
|
||||||
# --- Logging ---------------------------------------------------------------
|
# --- Logging ---------------------------------------------------------------
|
||||||
log_level = "INFO"
|
log_level = "INFO"
|
||||||
|
|||||||
@@ -13,7 +13,13 @@ Restart=on-failure
|
|||||||
RestartSec=30
|
RestartSec=30
|
||||||
|
|
||||||
# Hardening
|
# Hardening
|
||||||
ReadWritePaths=/opt/vw-eu-data-act-exporter/raw_json
|
# StateDirectory is created automatically (with correct ownership) before
|
||||||
|
# the service starts and is writable under ProtectSystem=strict without a
|
||||||
|
# ReadWritePaths= entry - systemd exposes its absolute path via
|
||||||
|
# $STATE_DIRECTORY, which config.py picks up for persist_raw_json_dir.
|
||||||
|
# Unlike ReadWritePaths=, this does not require the directory to already
|
||||||
|
# exist on disk.
|
||||||
|
StateDirectory=vw-eu-data-act-exporter
|
||||||
NoNewPrivileges=true
|
NoNewPrivileges=true
|
||||||
ProtectSystem=strict
|
ProtectSystem=strict
|
||||||
ProtectHome=true
|
ProtectHome=true
|
||||||
|
|||||||
Reference in New Issue
Block a user