Autostart after boot failing - Printable Version +- SIP (https://nosack.com/sipforum) +-- Forum: SIP (Sustainable Irrigation Platform) (https://nosack.com/sipforum/forumdisplay.php?fid=1) +--- Forum: Report a problem (https://nosack.com/sipforum/forumdisplay.php?fid=9) +--- Thread: Autostart after boot failing (/showthread.php?tid=146) |
Autostart after boot failing - Gazmac52 - 2019 Apr 12 Hi, I have followed the directions to start the service automatically. However, after reboot the status is this: pi@irrigate:~ $ systemctl status sip ● sip.service - SIP Loaded: loaded (/etc/systemd/system/sip.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sat 2019-04-13 08:59:06 AEST; 1min 8s ago Process: 388 ExecStart=/usr/bin/python -u /home/pi/SIP/sip.py (code=exited, status=1/FAILURE) Main PID: 388 (code=exited, status=1/FAILURE) Apr 13 08:59:06 irrigate sip[388]: File "/home/pi/SIP/sip.py", line 202, in run Apr 13 08:59:06 irrigate sip[388]: return web.httpserver.runsimple(func, (ip, port)) Apr 13 08:59:06 irrigate sip[388]: File "/home/pi/SIP/web/httpserver.py", line 157, in runsimple Apr 13 08:59:06 irrigate sip[388]: server.start() Apr 13 08:59:06 irrigate sip[388]: File "/home/pi/SIP/web/wsgiserver/__init__.py", line 1753, in start Apr 13 08:59:06 irrigate sip[388]: raise socket.error(msg) Apr 13 08:59:06 irrigate sip[388]: socket.error: No socket could be created Apr 13 08:59:06 irrigate systemd[1]: sip.service: Main process exited, code=exited, status=1/FAILURE Apr 13 08:59:06 irrigate systemd[1]: sip.service: Unit entered failed state. Apr 13 08:59:06 irrigate systemd[1]: sip.service: Failed with result 'exit-code'. If I do this then all ok: pi@irrigate:~ $ sudo systemctl start sip pi@irrigate:~ $ systemctl status sip ● sip.service - SIP Loaded: loaded (/etc/systemd/system/sip.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-04-13 09:08:40 AEST; 5s ago Main PID: 577 (python) CGroup: /system.slice/sip.service └─577 /usr/bin/python -u /home/pi/SIP/sip.py Apr 13 09:08:41 irrigate sip[577]: plugin_manager Apr 13 09:08:41 irrigate sip[577]: relay_board Apr 13 09:08:41 irrigate sip[577]: signaling_examples Apr 13 09:08:41 irrigate sip[577]: system_update Apr 13 09:08:41 irrigate sip[577]: http://10.0.0.10:80/Starting timing loop Apr 13 09:08:41 irrigate sip[577]: 10.0.0.155:5688 - - [13/Apr/2019 09:08:41] "HTTP/1.1 GET /rss" - 200 OK Apr 13 09:08:42 irrigate sip[577]: 10.0.0.155:5688 - - [13/Apr/2019 09:08:42] "HTTP/1.1 GET /rss" - 200 OK Apr 13 09:08:43 irrigate sip[577]: 10.0.0.155:5688 - - [13/Apr/2019 09:08:43] "HTTP/1.1 GET /rss" - 200 OK Apr 13 09:08:44 irrigate sip[577]: 10.0.0.155:5688 - - [13/Apr/2019 09:08:44] "HTTP/1.1 GET /rss" - 200 OK Apr 13 09:08:45 irrigate sip[577]: 10.0.0.155:5688 - - [13/Apr/2019 09:08:45] "HTTP/1.1 GET /rss" - 200 OK pi@irrigate:~ $ Any help appreciated RE: Autostart after boot failing - dan - 2019 Apr 13 The error "socket.error: No socket could be created" indicates that there is already something using the default port (port 80). Do you have another server program like apache running? Once you get SIP to start you can change the port it uses from the Options page. Change "HTTP port:" from 80 to something like 8080. This may help. You will then need to add the port to the URL when you access SIP for example http://x.x.x.x:8080 I have seen this happen after starting SIP manually and then trying to start it using systemctl. RE: Autostart after boot failing - Gazmac52 - 2019 Apr 13 (2019 Apr 13, 12:38 AM)dan Wrote: The error "socket.error: No socket could be created" indicates that there is already something using the default port (port 80). Thanks dan. I stopped autostart and rebooted. sudo netstat -pln, nothing on port 80 started sip port 80 now in use. changed port to 8080 and tested ok. set up auto start rebooted, error still there even though now on 8080. start sip and web page responds on 8080 I am inclined to think it is a timing issue but I don't know how to delay the service start. RE: Autostart after boot failing - dan - 2019 Apr 13 I have not seen this problem before and I don't know of a way do delay the auto start. You might try uising rc.local to start SIP even though it is not the best solution. If I find another solution I will post it here. RE: Autostart after boot failing - dan - 2019 Apr 13 Apparently you can use a sleep statement in the unit file (sip.service) https://stackoverflow.com/questions/43001223/how-to-ensure-that-there-is-a-delay-before-a-service-is-started-in-systemd RE: Autostart after boot failing - Gazmac52 - 2019 Apr 13 I have found an answer. sudo nano /etc/systemd/system/sip.service And modify like this: [Service] ExecStartPre=-/bin/sleep 10 ExecStart=/usr/bin/python -u /home/pi/SIP/sip.py This has fixed it for me. RE: Autostart after boot failing - dan - 2019 Apr 13 Great! Learned a new trick today. |