[Unit] Description=Genarrative External Generation Worker Controller After=network-online.target spacetimedb.service Wants=network-online.target Requires=spacetimedb.service [Service] Type=simple WorkingDirectory=/opt/genarrative/current EnvironmentFile=/etc/genarrative/api-server.env EnvironmentFile=-/etc/genarrative/external-generation-controller.env ExecStart=/usr/bin/env GENARRATIVE_PROCESS_ROLE=external-generation-controller GENARRATIVE_TRACKING_OUTBOX_DIR=/var/lib/genarrative/tracking-outbox/controller OTEL_SERVICE_NAME=genarrative-external-generation-controller /opt/genarrative/current/api-server Restart=always RestartSec=5 KillSignal=SIGINT TimeoutStopSec=120 LimitNOFILE=65535 TasksMax=512 # controller 需要调用 systemctl 管理 worker@N 实例,因此不降为 genarrative 用户。 # 它只复用 api-server 发布包和 SpacetimeDB 配置,不直接执行外部生成任务。 PrivateTmp=true ProtectSystem=full ReadWritePaths=/opt/genarrative /var/lib/genarrative [Install] WantedBy=multi-user.target