datenschuft / SMA-EM

SMA Energymeter measurement
GNU General Public License v2.0
93 stars 38 forks source link

improve the feature init #49

Closed dervomsee closed 3 years ago

dervomsee commented 3 years ago

When the double fork of the daemon3x class is used, the feature plugins are initialized three times. This looks strange, when reading the log files.

I created a function daemon3x.config to init the features just once in the forked daemon. I also merged the changes from #46, which are also improving the startup.

datenschuft commented 3 years ago

a quick check: result code is not working

Mär 01 22:16:52 homecontrol-server systemd[1]: smaemd.service: Service RestartSec=100ms expired, scheduling restart. Mär 01 22:16:52 homecontrol-server systemd[1]: smaemd.service: Scheduled restart job, restart counter is at 5. Mär 01 22:16:52 homecontrol-server systemd[1]: Stopped SMA Energymeter measurement daemon. Mär 01 22:16:52 homecontrol-server systemd[1]: smaemd.service: Start request repeated too quickly. Mär 01 22:16:52 homecontrol-server systemd[1]: smaemd.service: Failed with result 'start-limit-hit'. Mär 01 22:16:52 homecontrol-server systemd[1]: Failed to start SMA Energymeter measurement daemon.

I'll take a look at the code in the next few days (hopefully)

dervomsee commented 3 years ago

@datenschuft thats strange.. I tried it again with my branch and it workes:

Mar 05 14:36:26 raspberrypi-dg systemd[1]: Stopping SMA Energymeter measurement daemon...
Mar 05 14:36:26 raspberrypi-dg systemd[1]: smaemd_mod.service: Succeeded.
Mar 05 14:36:26 raspberrypi-dg systemd[1]: Stopped SMA Energymeter measurement daemon.
Mar 05 14:36:26 raspberrypi-dg systemd[1]: Started SMA Energymeter measurement daemon.
Mar 05 14:36:26 raspberrypi-dg systemd[1]: smaemd_mod.service: Supervising process 2079337 which is not our child. We'll most likely not notice when it exits.
Mar 05 14:51:10 raspberrypi-dg systemd[1]: Stopping SMA Energymeter measurement daemon...
Mar 05 14:51:10 raspberrypi-dg systemd[1]: smaemd_mod.service: Succeeded.
Mar 05 14:51:10 raspberrypi-dg systemd[1]: Stopped SMA Energymeter measurement daemon.
Mar 05 14:51:10 raspberrypi-dg systemd[1]: Started SMA Energymeter measurement daemon.
Mar 05 14:51:10 raspberrypi-dg systemd[1]: smaemd_mod.service: Supervising process 2094593 which is not our child. We'll most likely not notice when it exits.

Have you modified you systemd unit file?