VOLTTRON / volttron

VOLTTRON Distributed Control System Platform
https://volttron.readthedocs.io/
Other
457 stars 216 forks source link

rotatinglog.py #2674

Open bbartling opened 3 years ago

bbartling commented 3 years ago

Description of Issue

Hello I posted a question on Stackoverflow for a volttron log file management best practices and perhaps I didnt understand the answer correctly.

While VOLTTRON was running I entered the answer into the terminal that was posted on SO. I think @craig8 was trying to point to me on SO this is written into the bash script to ./Start-Voltton but don't actually run it in terminal.

Not really knowing I ran this in terminal during a running session and it seemed to kill or disconnect the VOLTTRON pid: volttron -L examples/rotatinglog.py > volttron.log 2>&1 &

At least once that is ran on a running session, vctl status is gone, its like VOLTTRON is no longer running but I could tell data was still coming through to our Grafana interface.

Basically to get VOLTTRON back I had to do a killall volttron and then restart everything in the root user. Hopefully that makes sense. Thanks @acedrew for tips as well.

Affected Version

VOLTTRON 8.0

bbartling commented 3 years ago

./start-volttron --rotating is the proper methods to use rotating log files?

acedrew commented 3 years ago

Just to clarify, it really has nothing to do with rotating log, it's attempting to run /env/bin/volttron while there is already a background process fails and cleans up the PID or socket?, preventing either stop-volttron.sh or /env/bin/vctl from working

craig8 commented 3 years ago

yeah the ./start-volttron does not check for existing running volttrons. Andrew's comment is 100% correct. The logging has nothing to do with this issue.

One more point. the ./start-volttron --rotatinglog is a shortcut for the "correct" way of dealing with logs in volttron. It is by no means the only way.

acedrew commented 3 years ago

@craig8 It's not really ./start-volttron's fault either, as he didn't run start-volttron, he ran the bare executable /env/bin/volttron The auto cleanup must be built into the core platform, which it should do on error, but only if it wasn't already present when it attempted to start.