목차
- 파이썬 전체 프로세스 CPU 사용량 출력 예제 이전 포스팅 참고 학습
- 파이썬 CPU 사용량, 프로세스명으로 dict 파싱 예제 이전 포스팅 참고 학습
- 파이썬 사용자에게 CPU 사용량 확인 필요한 프로세스명 입력 받기 예제
- 파이썬 전체 프로세스 CPU사용량 dict 파싱 및 CPU 사용량 비교 예제
- 파이썬 프로세스명으로 kill 예제
파이썬 전체 프로세스 CPU 사용량 출력 예제 이전 포스팅 참고 학습
파이썬을 사용하여 전체 프로세스의 CPU 사용량을 출력하는 방법은 이전 포스팅을 참고하여 배울 수 있습니다. 이에 대한 코드 예제와 설명을 통해 리눅스에서 top 명령 등을 활용하여 프로세스의 CPU 사용량을 모니터링하고 출력하는 방법을 익힐 수 있습니다.
2023.08.30 - [Python] - [Python/Linux] 파이썬 전체 프로세스 CPU 사용량 가져오기 예제(popen, top)
파이썬 CPU 사용량, 프로세스명으로 dict 파싱 예제 이전 포스팅 참고 학습
파이썬을 사용하여 CPU 사용량과 프로세스명을 기준으로 딕셔너리를 파싱하는 방법은 이전 포스팅을 참고하여 학습할 수 있습니다. 해당 포스팅에서는 top 명령어의 출력 결과를 파싱하여 딕셔너리로 저장하는 방법을 상세하게 설명할 것입니다.
2023.08.30 - [Python] - [Python/Linux] 파이썬 특정 프로세스 CPU 사용량 dict 파싱 예제(popen)
파이썬 사용자에게 CPU 사용량 확인 필요한 프로세스명 입력 받기 예제
아래는 파이썬을 사용하여 사용자로부터 프로세스명을 입력받아 해당 프로세스의 CPU 사용량을 확인하는 예제이니다. 사용자 입력을 받는 부분과 해당 프로세스의 CPU 사용량을 확인하는 부분을 코드 예제와 함께 설명하여 사용자가 원하는 수준의 CPU를 사용하면 해당 프로세스를 종료시키겠습니다.
import subprocess
import re
process_name = input("Enter the process name to check CPU usage: ")
파이썬 전체 프로세스 CPU사용량 dict 파싱 및 CPU 사용량 비교 예제
아래는 파이썬을 사용하여 전체 프로세스의 CPU 사용량을 딕셔너리로 파싱하고, 각 프로세스의 CPU 사용량을 비교하는 예제입니다. 딕셔너리를 활용하여 CPU 사용량을 기반으로 분석 및 비교하는 코드를 추가합니다. 이후 이 값을 가지고 kill을 수행합니다.
import subprocess
import re
def parse_top_output(output):
processes = {}
lines = output.decode().split('\n')
for line in lines:
if re.match(r'\s*\d+', line):
columns = line.split()
process_name = columns[11]
cpu_usage = float(columns[8])
processes[process_name] = cpu_usage
return processes
process_name = input("Enter the process name to check CPU usage: ")
cmd = ['top', '-b', '-n', '1']
result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
top_output = result.stdout
processes_dict = parse_top_output(top_output)
if process_name in processes_dict:
cpu_usage = processes_dict[process_name]
print(f"CPU Usage for '{process_name}': {cpu_usage}%")
if cpu_usage >= 60:
print(f"CPU Usage for '{process_name}': 60 over")
else:
print(f"CPU Usage for '{process_name}': 60 not over")
else:
print(f"Process '{process_name}' not found.")
파이썬 프로세스명으로 kill 예제
아래는 파이썬을 사용하여 특정 프로세스를 종료하는 예제입니다. 프로세스명을 입력받아 해당 프로세스를 종료하는 코드 예제입니다.
import subprocess
import re
def parse_top_output(output):
processes = {}
lines = output.decode().split('\n')
for line in lines:
if re.match(r'\s*\d+', line):
columns = line.split()
process_name = columns[11]
cpu_usage = float(columns[8])
processes[process_name] = cpu_usage
return processes
def kill_process_by_name(process_name):
try:
# 프로세스명으로 PID 조회
pid_result = subprocess.run(['pgrep', process_name], stdout=subprocess.PIPE)
pid = pid_result.stdout.decode().strip()
# 프로세스 종료
if pid:
subprocess.run(['sudo', 'kill', pid])
print(f"Process '{process_name}' (PID: {pid}) has been killed.")
else:
print(f"No process with name '{process_name}' found.")
except Exception as e:
print(f"Error occurred: {e}")
process_name = input("Enter the process name to check CPU usage: ")
cmd = ['top', '-b', '-n', '1']
result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
top_output = result.stdout
processes_dict = parse_top_output(top_output)
if process_name in processes_dict:
cpu_usage = processes_dict[process_name]
print(f"CPU Usage for '{process_name}': {cpu_usage}%")
if cpu_usage >= 60:
print(f"CPU Usage for '{process_name}': 60 over")
kill_process_by_name(process_name)
else:
print(f"CPU Usage for '{process_name}': 60 not over")
else:
print(f"Process '{process_name}' not found.")