Run a Python programme in the background

There are many ways to run a python program as a background service on your raspberry pi at startup. We will use the systemd method.

  • Create a .service file for your service as below:
sudo nano /lib/systemd/system/helloworld.service
  • Add the below text:
[Unit]
Description=Hello World Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pi/helloworld.py
User=pi
[Install]
WantedBy=multi-user.target
  • Save and exit the nano editor (by pressing Ctrl+X).
  • The permission on the unit file needs to be set to 644 :
sudo chmod 644 /lib/systemd/system/helloworld.service
  • Reload the system manager configuration by using the following command:
sudo systemctl daemon-reload
  • Start the service using the following command:
sudo systemctl start helloworld.service
  • Stop the service using the following command:
sudo systemctl stop helloworld.service
  • You can enable the service to start at boot as below:
sudo systemctl enable helloworld.service