Skip to content

Instantly share code, notes, and snippets.

@Th3On3
Forked from gtitov/systemd.md
Created May 30, 2025 08:32
Show Gist options
  • Save Th3On3/7835c580920931a0cdd47eab9108cf08 to your computer and use it in GitHub Desktop.
Save Th3On3/7835c580920931a0cdd47eab9108cf08 to your computer and use it in GitHub Desktop.

Revisions

  1. @gtitov gtitov created this gist Sep 25, 2024.
    69 changes: 69 additions & 0 deletions systemd.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,69 @@
    source https://www.shubhamdipt.com/blog/how-to-create-a-systemd-service-in-linux/

    1. `cd /etc/systemd/system`
    2. Create a file named your-service.service and include the following

    ```
    [Unit]
    Description=<description about this service>
    [Service]
    User=<user e.g. root>
    WorkingDirectory=<directory_of_script e.g. /root>
    ExecStart=<script which needs to be executed>
    # optional items below
    Restart=always
    RestartSec=3
    [Install]
    WantedBy=multi-user.target
    ```

    ```
    [Unit]
    Description=<project description>
    [Service]
    User=<user e.g. root>
    WorkingDirectory=<path to your project directory containing your python script>
    ExecStart=/home/user/.virtualenv/bin/python main.py
    # optional items below
    Restart=always
    RestartSec=3
    # replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script
    [Install]
    WantedBy=multi-user.target
    ```

    ```
    [Unit]
    Description=<project description>
    [Service]
    User=<user e.g. root>
    WorkingDirectory=<path to your project directory>
    ExecStart=/bin/bash -c 'cd /home/ubuntu/project/ && source venv/bin/activate && python test.py'
    # optional items below
    Restart=always
    RestartSec=3
    [Install]
    WantedBy=multi-user.target
    ```

    3. Reload the service files to include the new service.
    `sudo systemctl daemon-reload`


    4. Start your service
    `sudo systemctl start your-service.service`

    5. To check the status of your service
    `sudo systemctl status example.service`

    6. To enable your service on every reboot
    `sudo systemctl enable example.service`

    7. To disable your service on every reboot
    `sudo systemctl disable example.service`