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.



  • 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

15
Online

11.4k
Users

11.1k
Topics

112.7k
Posts