Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Starting script as a service #25

Closed
elngejw opened this issue Nov 18, 2022 · 2 comments
Closed

Starting script as a service #25

elngejw opened this issue Nov 18, 2022 · 2 comments

Comments

@elngejw
Copy link

elngejw commented Nov 18, 2022

Hi all,

I have an issue with starting this script semp-rtu.py as a service. See below steps I have taken.

Anybody knows what step(s) are missing?

openhabian@rpizero:~ $ cd /lib/systemd/system/
openhabian@rpizero:/lib/systemd/system $ sudo nano solaredge_meterproxy.service

**[Unit]
Description=solaredge_meterproxy
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/openhabian/shared/solaredge_meterproxy/semp-rtu.py
Restart=on-abort

[Install]
WantedBy=multi-user.target**

openhabian@rpizero:/lib/systemd/system $ sudo chmod 644 /lib/systemd/system/solaredge_meterproxy.service
openhabian@rpizero:/lib/systemd/system $ chmod +x /home/openhabian/shared/solaredge_meterproxy/semp-rtu.py
openhabian@rpizero:/lib/systemd/system $ sudo nano solaredge_meterproxy.service
openhabian@rpizero:/lib/systemd/system $ sudo systemctl daemon-reload
openhabian@rpizero:/lib/systemd/system $ sudo systemctl enable solaredge_meterproxy.service

chmod +x /home/openhabian/shared/solaredge_meterproxy/.

When starting the service the log gives the error below

sudo journalctl -f -u solaredge_meterproxy.service

Nov 18 15:53:10 rpizero systemd[1]: Started solaredge_meterproxy.
Nov 18 15:53:15 rpizero python3[31057]: Traceback (most recent call last):
Nov 18 15:53:15 rpizero python3[31057]: File "/home/openhabian/shared/solaredge_meterproxy/semp-rtu.py", line 153, in
Nov 18 15:53:15 rpizero python3[31057]: address = confparser[meter].getint("dst_address", fallback=default_config["meters"]["dst_address"])
Nov 18 15:53:15 rpizero python3[31057]: File "/usr/lib/python3.9/configparser.py", line 960, in getitem
Nov 18 15:53:15 rpizero python3[31057]: raise KeyError(key)
Nov 18 15:53:15 rpizero python3[31057]: KeyError: ''
Nov 18 15:53:15 rpizero systemd[1]: solaredge_meterproxy.service: Main process exited, code=exited, status=1/FAILURE
Nov 18 15:53:15 rpizero systemd[1]: solaredge_meterproxy.service: Failed with result 'exit-code'.
Nov 18 15:53:15 rpizero systemd[1]: solaredge_meterproxy.service: Consumed 2.287s CPU time.

@elngejw
Copy link
Author

elngejw commented Nov 18, 2022

Ok, found out that when changing the next line (#104 in semp-rtu.py) with full path this error is solved

argparser.add_argument("-c", "--config", type=str, default="/home/openhabian/shared/solaredge_meterproxy/semp-rtu.conf")

But in some way running the script as a service, the serial port is not accessable

2022-11-18 17:57:36 INFO: Starting <Thread(t_update_2, started 3035092032)>
2022-11-18 17:57:36 DEBUG: Using selector: EpollSelector
2022-11-18 17:57:36 DEBUG: Exception while create - name 'create_serial_connection' is not defined

also following is generating same error
sudo python3 /home/openhabian/shared/solaredge_meterproxy/semp-rtu.py

without sudo is working fine
python3 /home/openhabian/shared/solaredge_meterproxy/semp-rtu.py

@elngejw
Copy link
Author

elngejw commented Nov 18, 2022

Found another solution by using crontab...and this is working :D

@reboot sleep 30 && /home/openhabian/shared/solaredge_meterproxy/semp-rtu.py

I added a delay to be sure that reboot is finished before starting the script

@elngejw elngejw closed this as completed Nov 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant