MySensors gateway running as a service



  • I have an RPi Zerwo 2w that I am running headless. It is running the minimal version of RaspberryPi OS (no GUI). I can run MySensors Gateway (mysgw) in a ssh sesstion. I would like to run mysgw as a service.

    Granted, I would get no output, but it is running well.

    Well, community, have you ever done this?


  • Mod

    @OldSurferDude everyone who has run make install has it running as a service. See the Install section at https://web.archive.org/web/20220306231732/https://www.mysensors.org/build/raspberry

    https://github.com/mysensors/MySensors/pull/1421 adds support for more than one gateway on the same machine. You’ll need to configure them to use different eeprom files though, see my note in the PR.

    mfalkvidd created this issue in mysensors/MySensors

    open Rpi servicename #1421



  • I think I got it working.

    note: I use UNAME here. Usually its pi
    create directory ~/.config
    create the file ~/.config/autostart.sh with the contents:

    #
    # must use full path because at this point in the 
    #   process, the user is not logged in
    
    # log the time of boot
    date -R >/home/UNAME/lastboot
    
    # wait a little bit to ensure network is up
    sleep 5
    
    # Start the gateway
    # pipe stdout and stderr to the null file so that loose characters are not flying about
    # end with an & to the boot to complete and let the gateway run
    /home/UNAME/MySensors/bin/mysgw >>/dev/null 2>>/dev/null &
    

    make this file executable

    sudo chmod +x ~/.config/autostart.sh
    

    Get the autostart program to run at boot by modifying

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi
    
    # add this line
    # ampersand is very important!
    /home/UNAME/.config/autostart.sh &
    exit 0
    

    ensure that rc.local is executable

    sudo chmod +x /etc/rc.local
    


  • @mfalkvidd

    Thanks, I didn't see that!

    OSD


Log in to reply
 

Suggested Topics

  • 3
  • 11
  • 4
  • 15
  • 6
  • 10
  • 6
  • 20

2
Online

10.7k
Users

10.9k
Topics

111.6k
Posts