42 lines
1.2 KiB
Desktop File
42 lines
1.2 KiB
Desktop File
[Unit]
|
|
Description=AIOS GPT plus one-executor quorum controller
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
ConditionPathExists=/etc/aios-automation-quorum/controller.json
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
User=aios-quorum
|
|
Group=aios-quorum
|
|
SupplementaryGroups=aios-orchestrator gitops
|
|
ExecStart=/usr/bin/python3 /opt/aios-automation-quorum/current/bin/executor-quorum-controller --once --config /etc/aios-automation-quorum/controller.json
|
|
# Exit 2 means the controller successfully persisted a fail-closed BLOCKED
|
|
# decision. Runtime/configuration errors use exit 3 and remain unit failures.
|
|
SuccessExitStatus=2
|
|
UMask=0077
|
|
NoNewPrivileges=yes
|
|
PrivateDevices=yes
|
|
PrivateTmp=yes
|
|
ProtectClock=yes
|
|
ProtectControlGroups=yes
|
|
ProtectHome=yes
|
|
ProtectHostname=yes
|
|
ProtectKernelLogs=yes
|
|
ProtectKernelModules=yes
|
|
ProtectKernelTunables=yes
|
|
ProtectSystem=strict
|
|
ReadOnlyPaths=/etc/aios-automation-quorum /run/aios-health /data/aios-gitops/repo.git
|
|
ReadWritePaths=/var/lib/aios-automation-quorum
|
|
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
|
RestrictNamespaces=yes
|
|
RestrictRealtime=yes
|
|
RestrictSUIDSGID=yes
|
|
LockPersonality=yes
|
|
MemoryDenyWriteExecute=yes
|
|
SystemCallArchitectures=native
|
|
SystemCallFilter=@system-service
|
|
SystemCallErrorNumber=EPERM
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|