# Systemd run on startup - Crow

Skip to content

# Systemd run on startup

Using Systemd allows you to run any executable or script when the system starts. This can be useful when you don't want to re-run your Crow application every single time you restart your server.

## Writing the Service Unit File

In order to have Systemd recognize your application, you need to create a `.service` file that explains how Systemd should handle your program.

To create a service file, you need to go to `/etc/systemd/system` and create an empty text file with the extension `.service`, the file name can be anything.

Once the file is created, open it using your favorite text editor and add the following:

    [Unit]
    Description=My revolutionary Crow application

    Wants=network.target
    After=syslog.target network-online.target

    [Service]
    Type=simple
    ExecStart=/absolute/path/to/your/executable
    Restart=on-failure
    RestartSec=10
    KillMode=process

    [Install]
    WantedBy=multi-user.target

You will then need to give the correct permission, this can be done by using the following command (a `sudo` maybe required):

    chmod 640 /etc/systemd/system/crowthing.service

And that's it! You can now use your `systemctl` controls to `enable`, `start`, `stop`, or `disable` your Crow application.

If you're not familiar with Systemd, `systemctl enable crowthing.service` will allow your Crow application to run at startup, `start` will start it, and the rest is simple.