alxscott Posted September 26, 2012 Author Share Posted September 26, 2012 Ah, brilliant! Don't know anything about Python so don't suppose you could point me in the right direction? Quote Link to comment
nimrodel50 Posted September 26, 2012 Share Posted September 26, 2012 I'm doing this by memory but something like that, just add a if to check if the ip is the fake one and then change it for the static ip you want. hope you get the idea. def discoverSleepProxies(interface): # discover all available Sleep Proxy Servers proxies = [] cmd = "avahi-browse --resolve --parsable --no-db-lookup --terminate _sleep-proxy._udp 2>/dev/null | grep '=;.*;IPv4;'" p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) for line in p.stdout.readlines(): lineArr = line.rsplit(";") # check length if (len(lineArr) < 10) : p.terminate() break ip = lineArr[7] if (ip == "your fake ip"): ip= "your ip" port = lineArr[8] proxies.append({ "ip" : ip, "port" : port}) retval = p.wait() return proxies main() Quote Link to comment
alxscott Posted September 26, 2012 Author Share Posted September 26, 2012 Thank you very much, I'll have a play around when I get home tonight! Quote Link to comment
alxscott Posted October 8, 2012 Author Share Posted October 8, 2012 Thank you very much Nimrodel that seemed to work a treat! Been busy at work so haven't been able to play around much but now I seem to have the issue where it works as advertised once ie run the script on sleep, services stay advertised and server wakes when accessed... However now if the server sleeps a second time it doesn't seem to keep the services advertised Quote Link to comment
nimrodel50 Posted November 13, 2012 Share Posted November 13, 2012 I think finaly I got a solution using the script from https://github.com/awein/SleepProxyClient without any modification. First we need to install this packages: openssl-1.0.1c-i486-3.txz python-2.7.3-i486-2.txz python-netifaces-0.8-i486-1alien.tgz dnspython-1.10.0-i486-1alien.tgz they can be download from: http://slackware.cs.utah.edu/pub/slackware/slackware-14.0/slackware/ http://www.slackware.com/~alien/slackbuilds/ then we have to install manually this other package: IPy-0.75.tar.gz it is easy, once it is uncompressed on the pen drive the only thing you need to write on the go files is: cd IPy-0.75 phyton setup.py install That make the original script work, but it still take the wrong ip for my sleep proxy, for that I found a way to cheat the system, adding this routes to the go file seems to help. route add default dev eth0 metric 99 route add -net 169.254.0.0 netmask 255.255.0.0 dev eth0 metric 99 my sleep proxy is working since last thursday with out any problem. Quote Link to comment
alxscott Posted November 16, 2012 Author Share Posted November 16, 2012 Thanks for posting Nimrodel! Been playing with this for hours now and its giving me headaches! Installed al the packages ( which was an issue due to some of the plugins i run ) Then it still couldnt register with the sleep proxy even after your additions to the go file. That i think was due to me having IPMI and remote management on the board. I think i got around it by hard coding my IP address into the script... But now whenever I try and run the script my server locks and needs hard restarting. Arrrgh! Quote Link to comment
awein Posted December 20, 2012 Share Posted December 20, 2012 Hi, I am the author of SleepProxyClient (https://github.com/awein/SleepProxyClient) and it's great to see the script is running fine on Slackware. I discovered this thread while searching the web to find a fix for a recently reported issue (https://github.com/awein/SleepProxyClient/issues/5). Several users reported the same issue here: SPC had chosen the "wrong" IP (169.254...). Good news: This issue should be fixed now! I removed the dependency to IPy too (which seems to be not available as a Slackware package) The project will get some little updates and cleanups next year. Please feel free to contribute to the project - just fork the code on Github and submit pull requests. It would be great to have Slackware-packaging too. Quote Link to comment
alxscott Posted December 21, 2012 Author Share Posted December 21, 2012 Awesome news about IPy... I kinda gave up what with the IP Address issue and plus I think another plugin was cause sleep issues. Ill give it another go tonight! Quote Link to comment
nimrodel50 Posted July 2, 2013 Share Posted July 2, 2013 @awein when the system is waked up from a windows the machine name can't be registered with avahi and create a new name with the #2 at the end. Do you know if after the machine is waked up we need to unregistered from the sleep proxy? Thanks Quote Link to comment
awein Posted July 2, 2013 Share Posted July 2, 2013 @awein when the system is waked up from a windows the machine name can't be registered with avahi and create a new name with the #2 at the end. Do you know if after the machine is waked up we need to unregistered from the sleep proxy? Thanks Sorry - I don't understand you question. Please describe you problem and setup i more detail. Quote Link to comment
nimrodel50 Posted July 2, 2013 Share Posted July 2, 2013 I have a mixed windows and Mac system, normally if no windows is involved everything seems to work nicely, but when the windows send a wol packet to wake up the system (not using the sleep proxy server) the system is not able to register because the sleep proxy still thinks the machine is sleeping and the avahi registers my server as a new server adding a number at the end. For me it seems that the sleep proxy is no releasing the services or the name if I wake the system on a different way . Does it make sense? Thanks for your help Quote Link to comment
awein Posted July 2, 2013 Share Posted July 2, 2013 I have a mixed windows and Mac system, normally if no windows is involved everything seems to work nicely, but when the windows send a wol packet to wake up the system (not using the sleep proxy server) the system is not able to register because the sleep proxy still thinks the machine is sleeping and the avahi registers my server as a new server adding a number at the end. Restarting avahi after each wakeup should resolve this issue. Quote Link to comment
nimrodel50 Posted July 2, 2013 Share Posted July 2, 2013 Ok thanks I will try this, is it also good doing this before sleep? Quote Link to comment
awein Posted July 2, 2013 Share Posted July 2, 2013 Ok thanks I will try this, is it also good doing this before sleep? I've done that on Debian to ensure all services are announced prior to fetching and registering them ... but it should not be necessary... Quote Link to comment
nimrodel50 Posted July 2, 2013 Share Posted July 2, 2013 Hi I keep having this on the log when I resume from sleep, I'm doing the avahidaemon restart. Jul 2 21:25:37 UnRaid avahi-daemon[16749]: Server startup complete. Host name is UnRaid.local. Local service cookie is 369886240. Jul 2 21:25:37 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:25:38 UnRaid avahi-daemon[16749]: Service "UnRaid-SMB" (/services/smb.service) successfully established. Jul 2 21:25:38 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:25:39 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:25:41 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:27:47 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:27:47 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:27:50 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:27:51 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:27:55 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:27:56 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:28:16 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:28:17 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:35:28 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:35:29 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:37:47 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:37:48 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. Jul 2 21:37:56 UnRaid avahi-daemon[16749]: Service name conflict for "%h" (/services/afp.service), retrying with "UnRaid #2". Jul 2 21:37:57 UnRaid avahi-daemon[16749]: Service "UnRaid" (/services/afp.service) successfully established. any clue? thanks. Quote Link to comment
awein Posted July 2, 2013 Share Posted July 2, 2013 any clue? Sorry - SPC has currently no de-registration code. Maybe stopping and waiting some time may help... It would be interesting to take a look at the remaining TTL for the old records. (But getting these is not that easy) But you may avoid waking the host via WOL directly... Just simulate a access to any of the announced services. (A connect to one of the announced ports should be enough). Quote Link to comment
nimrodel50 Posted July 3, 2013 Share Posted July 3, 2013 Thanks, I will try that. Quote Link to comment
nimrodel50 Posted July 8, 2013 Share Posted July 8, 2013 New question, if I bond two network cards does the script should handle that right? Or do I must change something? Thanks Quote Link to comment
awein Posted July 8, 2013 Share Posted July 8, 2013 Multiple interfaces should be no problem. (Please report an issue if there are problems) Quote Link to comment
muzo178 Posted January 4, 2016 Share Posted January 4, 2016 Anyone using this successfully in unRAID v6? Quote Link to comment
muzo178 Posted January 4, 2016 Share Posted January 4, 2016 Answering my own question. I installed these packages to my unRAID 6.1.6 server. (Copy them to /boot/extra and reboot or use installpkg command): python-2.7.11-x86_64-1 python-netifaces-0.8-x86_64-1alien dnspython-1.10.0-x86_64-1alien openssl-1.0.2e-x86_64-1 ..then got the latest version of Sleep Proxy Client from https://github.com/awein/SleepProxyClient and copied it to the flash drive. Since I'm using the Dynamix S3 Sleep plugin, I added the following to Custom commands before sleep: in Sleep Settings python /boot/wherever/you/put/yours/sleepproxyclient.py --interface br0 Now when my unRAID server goes to sleep, the Airport Express on my network registers the smb, afp, sftp, ssh services for my unRAID server. For example if I try to establish an ssh connection to my server, it wakes up. Or if I try connecting to any of my SMB shares, it wakes up. Great for file services etc... But... Unfortunately any of the services that are running under docker does not register with the Sleep Proxy this way. When I run sleepproxyclient.py --debug, I don't see any of the docker services as advertised.. I'd love to be able to have at least my PlexMediaServer docker register its services so that any attempt to connect to the PMS when unRAID is sleeping would wake it up. Any ideas as to how I should go about enabling dockerized apps to register using SleepProxyClient? Quote Link to comment
muzo178 Posted January 10, 2016 Share Posted January 10, 2016 Figured out how to get your Plex Media Server or any other service for that matter to be advertised by avahi. Create a plex.service file <?xml version="1.0" standalone="no"?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">Plex on %h</name> <service> <type>_plexmediasvr._tcp</type> <port>32400</port> </service> </service-group> Then copy it to /etc/avahi/services/ at boot. A line like this in your go file would do the trick: # Add Custom Avahi Services cp /boot/custom/avahi/plex.service /etc/avahi/services/ Quote Link to comment
lixe Posted November 29, 2022 Share Posted November 29, 2022 Just stumbled across this old solution to get wake-on-demand working, but sadly the python script isn't working for me. Already figured out the problem. The script won't get any discovered services. When running avahi-browse -a I'm also not able to see my unraid services (smb, ssh, sftp). But when I run avahi-browse on my raspberry pi, the unraid services are visible. So it seems they are getting published correctly, but my unraid server won't recognise them using the avahi-browse command, which is necessary for the python script to do its thing... But I have absolutely no idea what could cause this problem Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.