Create a gist now

Instantly share code, notes, and snippets.

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 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

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

@ghost

ghost commented Nov 30, 2014

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

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.

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