본문 바로가기

파이썬3/jupyter

실행 중인 노트북들 한번에 종료하는 스크립트

728x90
반응형
'''
이 스크립트는 jupyter-notebook을 중단시키기 위한 스크립트임.
사용하다보면 메모리 사용량이 너무 커지므로 이를 활용해서 제거하기 위함임.
'''
import subprocess as sbp
import os

def listing_jupyter_pid():
    cmd='ps -ef | grep conda | grep sjoh | grep json'
    pids=sbp.check_output(cmd,shell=True)
    pids=str(pids)
    pids=pids.replace("b'",'')
    pids=pids.split('\\n')
    pids=list(filter(lambda x: '.json' in x,pids))
    while '  ' in pids[0]:
        pids=list(map(lambda x: x.replace('  ',' ').replace('\t',''),pids))
    pids=list(map(lambda x: x.split(' ')[1],pids))
    return pids

jupyter_pids=listing_jupyter_pid()
print('실행 중인 주피터 노트북들을 종료합니다.')
print('서버를 종료하는 것은 아니지만 데이터는 모두 사라집니다.')
print('종료를 합니까? (y or n)')
reset=input()

if reset in ['y','yes','Y','YES']:
    # kill
    for pid in jupyter_pids:
        cmd=f'kill {pid}'
        sbp.call(cmd,shell=True)
        print(cmd)
    print('jupyter-notebook을 종료했습니다.')
else:
    print('종료를 안합니다.')

주피터노트북을 사용하다보면 꺼주지 않는 이상 메모리를 계속 잡아먹음.

주피터 노트북 서버는 종료하지 않고 실행 중인 커널만 모두 종료하기 위한 스크립트임.

728x90
반응형