Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
How to setup a service to automatically run a python script when the BeagleBone Black (BBB) reboots. These instructions allow you to setup a python script to automatically start when the BeagleBone (running Angstrom linux with systemd) restarts.

Creating a service to startup at BeagleBone Black boot time:

  • Create a shell script such as /usr/bin/myFancyBash.sh:

      #!/bin/bash
    
      # this could be any runnable code or shell script, really
      /usr/bin/myFancyPython.py 
    

Note that the first line is critical.

  • Create a service file in /lib/systemd/myFancy.service such as:

      [Unit]
      Description=My Fancy Service
    
      [Service]
      Type=simple
      ExecStart=/usr/bin/myFancyBash.sh
    
      [Install]
      WantedBy=multi-user.target
    
  • Create a symbolic link between your script and a special location under /etc:

      ln -s /lib/systemd/myFancy.service /etc/systemd/system/myFancy.service
    
  • Make systemd aware of your new service

      systemctl daemon-reload
      systemctl enable myFancy.service
      systemctl start myFancy.service
    
  • Reboot the BeagleBone Black to see your script in action

  • If you wish to control the service at runtime, you can use systemctl commands:

      systemctl status myFancy.service
      systemctl stop myFancy.service
      systemctl start myFancy.service
      systemctl disable myFancy.service
    
@bicubic

This comment has been minimized.

Copy link

bicubic commented Feb 18, 2014

Hi, I followed this to the letter but get

systemctl enable myFancy.service
Failed to issue method call: No such file or directory

@Jnesselr

This comment has been minimized.

Copy link

Jnesselr commented Sep 10, 2014

I found I had to change /lib/systemd/myFancy.service to /lib/systemd/system/myFancy.service for it to work.

@ghost

This comment has been minimized.

Copy link

ghost commented Nov 30, 2014

Thanks ! I was searching for a long time ! =D

@atulanandbel

This comment has been minimized.

Copy link

atulanandbel commented May 14, 2016

I have followed the steps and created
1: /usr/bin/atul_start.sh
2: /lib/systemd/system/atul_start_sr.service
3: ln -s /lib/systemd/system/atul_start_sr.service /etc/systemd/system/atul_start_sr.service
4: systemctl daemon-reload
systemctl enable atul_start_sr.service
systemctl start atul_start_sr.service

Observations:
1:The scripts "atul_start.sh" is working fine.
2: root@beaglebone:/usr/bin# "systemctl list-unit-files" is listing
atul_start_sr.service loaded active running My Auto Start Service

Issue: The service is not able to run the script on reboot.

@gajjar8055

This comment has been minimized.

Copy link

gajjar8055 commented May 24, 2017

Hey, do you have any idea about a script run with virtual environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.