fix(launch): boot SuperDirt as the unit, not raw sclang in a terminal
Unifying the two launchers surfaced a divergence neither had been measured
against. The root script span raw `sclang` under setsid; the Bridge's RIG UP
went through the other gig-up, which started parvagues-sc.service. Repointing
the button at one launcher would therefore have taken it OFF systemd.
Raw sclang loses, all at once: LimitMEMLOCK=infinity and LimitNICE=-20 (which
scsynth inherits), the 10-pipewire-jack.conf drop-in this script hand-rolls as
\${wrap}, StandardOutput=journal + SyslogIdentifier (so the post window is
parseable, and so the `SuperDirt warmed` probe — which keys on the unit's
ActiveEnterTimestamp — can ever say yes), Restart=on-failure bounded 3-in-300s,
and the OOM protection: systemd's user manager ships DefaultOOMScoreAdjust=200,
and an unprotected scsynth was terminated for memory on 2026-08-15 after four
crashes in one afternoon.
None of this is new reasoning — it is parvagues-sc.service's own header, written
2026-07-27: "SuperDirt as a managed unit rather than a thing running in a
terminal somewhere". This launch path simply predates it, and the divergence was
invisible because each launcher was the only one anyone watched.
Keeps the 2026-08-01 distinction that cost an evening: a unit that is ACTIVE
while scsynth is DEAD needs a restart, because start is a no-op on an active
unit. Falls back to raw sclang, loudly, if the unit is not installed.
Showing
Please
register
or
sign in
to comment