Skip to main content
CogOS can run as a long-lived background service. The cogos serve command supports subcommands for daemon lifecycle management, log viewing, and boot auto-start.
Only one CogOS daemon can run at a time. If a daemon is already running, cogos serve start will refuse to start a new one regardless of the port specified. Use cogos serve stop first, then start with a new port.

Running modes

Run the server in the current terminal session. Stops when you press Ctrl+C or close the terminal.

Port configuration

The server port can be specified in two ways (highest priority wins):
  1. Command-line flag: cogos serve --port 9000 start
  2. Config file: server.port in configs/cogos.yaml
  3. Default: 8000
The --port flag is defined on the serve group, so it works with all subcommands and foreground mode.

Daemon management

Start

Options --host, --port, and --template are defined on the parent serve command and apply to all subcommands. Pass --autostart to also enable boot auto-start via systemd.

Stop

Sends SIGTERM to the daemon and waits for graceful shutdown. Falls back to SIGKILL after 15 seconds if the process does not exit. Pass --remove-autostart to also disable the systemd auto-start service.

Restart

Stops the running daemon (if any), then starts a new one.

Status

Displays:
  • Running state and PID
  • Log file location
  • Uptime, memory usage, and CPU (when psutil is installed)
  • Whether auto-start is enabled
Install psutil (pip install psutil) for uptime, memory, and CPU metrics in the status output.

Boot auto-start

Use the --autostart flag on start to register a systemd user service:
This:
  1. Starts the daemon immediately
  2. Generates a systemd unit file at ~/.config/systemd/user/cogos.service
  3. Enables the service with systemctl --user enable cogos
  4. Runs loginctl enable-linger so the service survives user logout
To remove auto-start later:
Auto-start requires a Linux system with systemd. It is not supported on macOS or Windows.

Manual systemd control

After enabling auto-start, you can also manage the service directly with systemctl:

Log management

View recent server output:
Log file location: ~/.cogos/cogos.log

File locations

FilePurpose
~/.cogos/cogos.pidPID of the running daemon process
~/.cogos/cogos.logServer stdout and stderr output
~/.config/systemd/user/cogos.serviceSystemd unit file (created by --autostart)

Command reference

CommandDescription
cogos serveStart in foreground (Ctrl+C to stop)
cogos serve startStart as background daemon
cogos serve start --autostartStart daemon + enable boot auto-start (systemd)
cogos serve stopStop the daemon
cogos serve stop --remove-autostartStop daemon + disable boot auto-start
cogos serve restartRestart the daemon
cogos serve statusShow status, PID, uptime, memory, auto-start state
cogos serve logsView logs (-f follow, -n line count)