WeeWX stoped working on 20th of june and will not start driver and socketserver

176 views
Skip to first unread message

Axel Kellermann

unread,
Jul 7, 2024, 6:24:41 AM7/7/24
to weewx-user
Hi

I have trouble strating weewx.
I got it working on november 15th 2020 an it has been working continuously until june 20 2024.
I saw the halt about a week later.
What I did since:
  •  - Updated the server to Ubuntu 24.04 LTS and with that the weewx has been updated to 5.1
  •  - I have checked that the files and folders for weewx has changed ownership to weewx user and group as the user running weewx has changed
  •  - weewx.conf is OK - like I edited it from the start
 
 Server: Vitual server on KVM with Ubuntu 24.04 Hostname weewx
  Installed with apt (package weewx/buster,now 5.1.0-4 all [installed])
  Weatherstation: Froggit 3000 SE PRO
  Weatherstation is:
  • setup with 4 extra temparature sensors
  • setup to push data to weewx by IP
 Webserver:
  • Lighttp are configured to port 80
  •   Apache2 are configured to port 88 - apache is running on port 80 - cant find that config
  I can't remember why there are 2 webservers
  DB: MariaDB
 
 
 
  When I start weewx I get the following log:
 
  -----------Log begin -------------
2024-07-06T17:45:46.983665+02:00 weewx systemd[1]: Started weewx.service - WeeWX.
2024-07-06T17:45:47.079848+02:00 weewx weewxd[1504]: INFO __main__: Initializing weewxd version 5.1.0
2024-07-06T17:45:47.080258+02:00 weewx weewxd[1504]: INFO __main__: Command line: /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf
2024-07-06T17:45:47.080641+02:00 weewx weewxd[1504]: INFO __main__: Using Python: 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0]
2024-07-06T17:45:47.080881+02:00 weewx weewxd[1504]: INFO __main__: Located at:   /usr/bin/python3
2024-07-06T17:45:47.084696+02:00 weewx weewxd[1504]: INFO __main__: Platform:     Linux-6.8.0-36-generic-x86_64-with-glibc2.39
2024-07-06T17:45:47.084977+02:00 weewx weewxd[1504]: INFO __main__: Locale:       'C.UTF-8'
2024-07-06T17:45:47.085134+02:00 weewx weewxd[1504]: INFO __main__: Entry path:   /usr/share/weewx/weewxd.py
2024-07-06T17:45:47.085326+02:00 weewx weewxd[1504]: INFO __main__: WEEWX_ROOT:   /etc/weewx
2024-07-06T17:45:47.085519+02:00 weewx weewxd[1504]: INFO __main__: Config file:  /etc/weewx/weewx.conf
2024-07-06T17:45:47.085562+02:00 weewx weewxd[1504]: INFO __main__: User module:  /etc/weewx/bin/user
2024-07-06T17:45:47.085620+02:00 weewx weewxd[1504]: INFO __main__: Debug:        1
2024-07-06T17:45:47.085701+02:00 weewx weewxd[1504]: INFO __main__: User:         weewx
2024-07-06T17:45:47.085906+02:00 weewx weewxd[1504]: INFO __main__: Group:        weewx
2024-07-06T17:45:47.086046+02:00 weewx weewxd[1504]: INFO __main__: Groups:       root dialout weewx
2024-07-06T17:45:47.086355+02:00 weewx weewxd[1504]: DEBUG __main__: loop_on_init: False
2024-07-06T17:45:47.086546+02:00 weewx weewxd[1504]: DEBUG __main__: Initializing engine
2024-07-06T17:45:47.086760+02:00 weewx weewxd[1504]: INFO weewx.engine: Loading station type Interceptor (user.interceptor)
2024-07-06T17:45:47.108860+02:00 weewx weewxd[1504]: INFO user.interceptor: driver version is 0.53
2024-07-06T17:45:47.108944+02:00 weewx weewxd[1504]: INFO user.interceptor: device type: ecowitt-client
2024-07-06T17:45:47.109041+02:00 weewx weewxd[1504]: INFO user.interceptor: mode is listen
2024-07-06T17:45:47.109164+02:00 weewx weewxd[1504]: INFO user.interceptor: listen on :80
2024-07-06T17:45:47.109205+02:00 weewx weewxd[1504]: ERROR weewx.engine: Import of driver failed: [Errno 13] Permission denied (<class 'PermissionError'>)
2024-07-06T17:45:47.111471+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****  Traceback (most recent call last):
2024-07-06T17:45:47.111833+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/usr/share/weewx/weewx/engine.py", line 115, in setupStation
2024-07-06T17:45:47.112040+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      self.console = loader_function(config_dict, self)
2024-07-06T17:45:47.112168+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-06T17:45:47.112281+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/etc/weewx/bin/user/interceptor.py", line 315, in loader
2024-07-06T17:45:47.112344+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      return InterceptorDriver(**config_dict[DRIVER_NAME])
2024-07-06T17:45:47.112429+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-06T17:45:47.112519+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/etc/weewx/bin/user/interceptor.py", line 2522, in __init__
2024-07-06T17:45:47.112600+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      self._device = self.DEVICE_TYPES.get(self._device_type)(**stn_dict)
2024-07-06T17:45:47.112694+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-06T17:45:47.112739+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/etc/weewx/bin/user/interceptor.py", line 2297, in __init__
2024-07-06T17:45:47.112815+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      super(EcowittClient, self).__init__(
2024-07-06T17:45:47.112886+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/etc/weewx/bin/user/interceptor.py", line 429, in __init__
2024-07-06T17:45:47.112965+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      self._server = Consumer.TCPServer(address, port, handler)
2024-07-06T17:45:47.113005+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-07-06T17:45:47.113045+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/etc/weewx/bin/user/interceptor.py", line 584, in __init__
2024-07-06T17:45:47.113333+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      TCPServer.__init__(self, (address, int(port)), handler)
2024-07-06T17:45:47.113522+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/usr/lib/python3.12/socketserver.py", line 457, in __init__
2024-07-06T17:45:47.113801+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      self.server_bind()
2024-07-06T17:45:47.113980+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****    File "/usr/lib/python3.12/socketserver.py", line 473, in server_bind
2024-07-06T17:45:47.114203+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****      self.socket.bind(self.server_address)
2024-07-06T17:45:47.114351+02:00 weewx weewxd[1504]: CRITICAL weewx.engine:     ****  PermissionError: [Errno 13] Permission denied
2024-07-06T17:45:47.114520+02:00 weewx weewxd[1504]: CRITICAL __main__: Unable to load driver: [Errno 13] Permission denied
2024-07-06T17:45:47.114668+02:00 weewx weewxd[1504]: CRITICAL __main__:     ****  Exiting...
2024-07-06T17:45:47.132251+02:00 weewx systemd[1]: weewx.service: Main process exited, code=exited, status=4/NOPERMISSION
2024-07-06T17:45:47.132732+02:00 weewx systemd[1]: weewx.service: Failed with result 'exit-code'.

------------- log ends ---------------


As you can see there is a rights issue with driver (listen on port 80 as expected) and server.
I stoped both webserver but the result is the same.
I have checked file rights but I don't have the knowledge to determine if they are right. All files in /usr/share/weewx are owned by root:root and read rights for others.
I have installed a test on an other server with ver. 5.1.0 but it uses root as running user!
 

matthew wall

unread,
Jul 7, 2024, 7:02:33 AM7/7/24
to weewx-user
the weewx user does not have permission to listen on port 80

see the "Understanding permissions" article for options, specifically the "How to fix network permissions" section:

Reply all
Reply to author
Forward
0 new messages