[Unit] Description=Spinifex Services Documentation=https://github.com/mulgadc/spinifex After=network.target Wants=network.target [Service] Type=oneshot RemainAfterExit=yes User=root Group=root WorkingDirectory=/opt/spinifex Environment=PATH=/opt/spinifex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # Start NATS service ExecStart=/opt/spinifex/bin/spinifex service nats start ExecStartPost=/bin/sleep 3 # Start Predastore service ExecStart=/opt/spinifex/bin/spinifex service predastore start ExecStartPost=/bin/sleep 2 # Start Viperblock service ExecStart=/opt/spinifex/bin/spinifex service viperblock start # Stop services in reverse order ExecStop=/opt/spinifex/bin/spinifex service viperblock stop ExecStopPost=/bin/sleep 2 ExecStop=/opt/spinifex/bin/spinifex service predastore stop ExecStopPost=/bin/sleep 2 ExecStop=/opt/spinifex/bin/spinifex service nats stop # Restart policy Restart=on-failure RestartSec=10 # Security settings NoNewPrivileges=true ProtectSystem=strict ProtectHome=true ReadWritePaths=/opt/spinifex /var/log /var/run # Logging StandardOutput=journal StandardError=journal SyslogIdentifier=spinifex [Install] WantedBy=multi-user.target