Skip to content
afterbuild.dev
$ systemctl is-enabled yourapp

It runs until the server restarts, then it's gone

Started by hand once, and nothing remembers to start it again.

Seen in apps built with Replit.

52 of 100

Replit Agent projects ship a real backend — a server directory, an API, or Drizzle.

100 confirmed Replit Agent repositories, read 2026-08-03 · method and scripts in the measurements

What is actually happening

Replit Agent is the one builder in this group that regularly produces a full application rather than a front end talking to somebody else's API. That is usually an advantage — and it changes what breaks.

A process started from a terminal belongs to that terminal. Close it, or restart the machine, and the process ends. Nothing about the code is wrong; nobody arranged for it to be started again.

The gap is invisible until the first restart, which is why it usually surfaces weeks later, at an unrelated moment — a security update, a host reboot, a crash.

Confirm it in one command

SHELL
systemctl is-enabled yourapp

`enabled` means it starts on boot. `disabled` means it is running now and will not be after a restart. An error means nothing is registered at all.

Fixing it yourself

Where it stops being a small job

When the app also needs a database, a queue or a scheduled job to come back in the right order. Then you are arranging a system rather than a process, and the failure modes stop being obvious.

If it also needs a database or a scheduled job to come back, and in the right order, then it is a system rather than a process. Send the address and say what else has to be running.

Send us the app