Skip to content
patrick edited this page Jan 31, 2026 · 2 revisions

A sample unit file is provided in contrib/ircd.service. You'll need to install and enable it manually.

1. Install

Copy the file to the systemd directory:

sudo install -m 0644 contrib/ircd.service /etc/systemd/system/ircd.service

If your paths or user differ from the defaults, edit the unit:

sudoedit /etc/systemd/system/ircd.service

Common adjustments:

  • ExecStart: Binary path and flags.
  • User / Group: The system user for the daemon.
  • WorkingDirectory: Base directory.
  • ReadWritePaths: Locations the ircd needs to write to

2. Start

sudo systemctl daemon-reload
sudo systemctl enable --now ircd.service

Check status and logs:

sudo systemctl status ircd.service
sudo journalctl -u ircd.service -f

3. Reload & Restart

  • Reload config (SIGHUP): sudo systemctl reload ircd.service
  • Full restart: sudo systemctl restart ircd.service
  • Stop: sudo systemctl stop ircd.service

4. Core dumps

Due to ProtectSystem=strict, the ircd may not be able to write core files to its own directory. Use systemd-coredump to manage crashes:

sudo apt install systemd-coredump

To list and export the last crash for debugging:

sudo coredumpctl list -u ircd.service
sudo coredumpctl dump -u ircd.service -o ircd_crash.core

5. Troubleshooting

  • Hardening: If it won't start, check if it's trying to write to a location not explicitly listed in ReadWritePaths.
  • Permissions: Ensure all paths in ReadWritePaths are owned or writable by the configured User/Group.
  • Test: Run with -t manually to verify the config syntax.

Clone this wiki locally