diff --git a/lib/utils.py b/lib/utils.py index 695c8e9..6932ae5 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -105,14 +105,19 @@ def hive_set_miner_status(enabled=False): ### control miner state - OFF/ON screen_out = run_command("screen -ls") miner_screen_running = False + miner_screen_session_pids = [] if screen_out[0] == 0 or screen_out[0] == 1: screen_lines=screen_out[1].split('\n') for screen_line in screen_lines: screen_line_parts=screen_line.replace('\t', '', 1).split('\t') if len(screen_line_parts)>2 and '.' in screen_line_parts[0]: if screen_line_parts[0].split('.',1)[1]=="miner": + miner_screen_session_pids.append(screen_line_parts[0].split('.',1)[0]) miner_screen_running=True - if miner_screen_running and not enabled: + if len(miner_screen_session_pids) > 1: ## Something really bad going on, destroy all instances + for idx, miner_screen_session_pid in enumerate(miner_screen_session_pids): + run_command(f"kill -9 {miner_screen_session_pid}{' && screen -wipe' if idx==len(miner_screen_session_pids)-1 else ''}") + elif miner_screen_running and not enabled: run_command(f"/bin/bash -c \"PATH={HIVE_PATH} && sudo /hive/bin/miner stop\"") elif enabled and not miner_screen_running: run_command(f"/bin/bash -c \"PATH={HIVE_PATH} && sudo /hive/sbin/nvidia-oc && sudo /hive/bin/miner start\"")