On 2026-09-29 Gateway lost its connection, failed the reconnect's SSL handshake and sat on an error dialog for 9 hours with its API port open: clients connected, every startup request timed out, and systemd never restarted it because java kept running. - Broker connects with raiseSyncErrors, so a failed startup sync exits instead of continuing with an empty portfolio(), which rebalance would read as holding nothing. - `ibkr-quant gateway` probes the Gateway under its own health_client_id. - deploy/ensure-gateway.sh (`make gateway`) probes, waits a minute for a self-reconnect, then restarts ibgateway.service and waits for it. - The trade and fills units run `make gateway` as ExecStartPre; fills now retries on failure like trade does. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
18 lines
570 B
Desktop File
18 lines
570 B
Desktop File
[Unit]
|
|
Description=ibkr-quant daily rebalance: today's bars, then MOC orders
|
|
After=ibgateway.service
|
|
# make gateway restarts a Gateway that has lost IBKR. Retries cover today's bar
|
|
# arriving late (delayed data) and Gateway restarts; make submit refuses to
|
|
# double-submit while orders are open.
|
|
StartLimitIntervalSec=7200
|
|
StartLimitBurst=6
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
WorkingDirectory=%h/projects/ibkr-quant
|
|
Environment=PATH=%h/.local/bin:/usr/local/bin:/usr/bin:/bin
|
|
ExecStartPre=/usr/bin/make gateway
|
|
ExecStart=/usr/bin/make bars submit
|
|
Restart=on-failure
|
|
RestartSec=300
|