What are user system services?

How TurboStack runs long-lived application processes as systemd user services, and which applications rely on them.

A user system service is a long-lived process that TurboStack runs for you under your own system user, managed by systemd (the Linux service manager). It starts on its own, restarts if it crashes, and can keep running after you log out - without any root access.

Many applications need a process that stays running in the background: a message-queue consumer, a queue worker, a scheduled-job runner, or the application server itself. If that process stops, work stops piling up or the site returns a 502 error. A user system service keeps it running and restarts it automatically.

How it works on TurboStack

  • Each service is described by a unit file under ~/.config/systemd/user/, where ~ is your system user's home directory (for example /var/www/prod/).
  • You manage services with systemctl --user over Secure Shell (SSH). No root access is needed, because the services run as your system user.
  • Logs go to the systemd journal, which you read with journalctl --user.
  • loginctl enable-linger lets your services keep running after you close your SSH session and start again after a reboot.

For the exact commands to create, start, stop and inspect a service, see How to manage user system services.

Which applications use them

Background processing differs per application. These are the common cases on TurboStack:

Application What runs as a user service
Magento Message-queue consumers (indexing, emails, order processing)
Shopware Message-queue consumers and the scheduled-task runner
Odoo The Odoo application server itself
Akeneo Job-queue consumers (imports, exports, maintenance)
Laravel Queue workers
Craft CMS The queue listener
OroCommerce Message-queue consumers
Medusa The Node.js application process (or run it under pm2)
nopCommerce The .NET application service