목차
- 파이썬 pid 파일을 사용하여 파이썬 중복 실행 방지 예제 이전 포스팅 참고 학습
- 파이썬 eyed3 모듈로 MP3 파일의 총 음악 재생 시간 구하기 예제 이전 포스팅 참고 학습
- 파이썬 os.makedirs 하위/상위 디렉토리 일괄 생성 예제 이전 포스팅 참고 학습
- 파이썬 WatchDog 프로세스명으로 특정 프로세스 종료시 메세지 출력 예제
- 파이썬 크롬 브라우저 실행 및 종료하여 종료 메세지 출력 확인 예제
파이썬 pid 파일을 사용하여 파이썬 중복 실행 방지 예제 이전 포스팅 참고 학습
이전 포스팅에서는 파이썬에서 pid 파일을 생성하여 스크립트가 중복 실행되는 것을 방지하는 방법에 대해 알아보았습니다. 이러한 기능은 서비스같은 백그라운드 기능이 실행되고있는 중에 동시에 또 실행되면 예기치 못한 오류 혹은 원하는 결과가 출력되는 것을 방해할 수 있는 가능성을 없애줍니다. 매번 파이썬 스크립트는 한번만 실행되도록 할 수 있습니다. 프로세스 id를 가지고 중복 실행 방지 기능 구현 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.10.19 - [Python] - [Python/Linux] 파이썬 스크립트 중복 실행 방지 예제(pid 파일 활용)
파이썬 eyed3 모듈로 MP3 파일의 총 음악 재생 시간 구하기 예제 이전 포스팅 참고 학습
다음으로 이전 포스팅에서는 파이썬의 eyed3 모듈을 사용하여 mp3 파일의 총 음악 재생시간을 구하는 방법에 대해 알아보았습니다. 총 재생시간이란 음악이 시작해서 끝날 때까지의 시간을 의미합니다. 이러한 재생 시간 값을 이용하여 mp3 플레이어 기능을 만들 수 있습니다. 특히 이전 포스팅의 예제를 활용하여 mp3 음악을 2개로 나누는 예제도 같이 알아보았습니다. 만약 파이썬에서 mp3 파일 총 음악 재생 시간 구하는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.09.11 - [Python] - [Pytohn] 파이썬 MP3 총 음악 재생 시간 구하기 예제(eyed3)
파이썬 os.makedirs 하위/상위 디렉토리 일괄 생성 예제 이전 포스팅 참고 학습
마지막으로 이전 포스팅에서는 파이썬의 os.makedirs 함수를 사용하여 하위 디렉토리 및 상위 디렉토리를 모두 한번에 생성하는 방법에 대해 알아보았습니다. 예를들어 "/tmp/a/b/c" 라는 디렉토리를 만들려고 하는데 a 디렉토리가 존재하지 않는다면, a, b 디렉토리를 우선 생성하고 c 디렉토리를 생성해야합니다. 이 경우 매번 mkdir 로 1개씩 생성하기보다는 os.makedirs 함수를 사용하여 일괄 디렉토리 생성을하면 편리합니다. 만약 파이썬에서 os.makedirs로 디렉토리를 여러개 한번에 생성하는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.31 - [Python] - [Python] 파이썬 하위 디렉토리 포함 생성 예제(os.makedirs)
파이썬 WatchDog 프로세스명으로 특정 프로세스 종료시 메세지 출력 예제
아래는 파이썬에서 WatchDog 와치독 기능을 만드는 예제입니다. 특정 프로세스명으로 실행되고있는 프로세스가 종료되면 종료 메세지를 출력합니다. 프로세스가 실행되고 있는 상태인지는 psutil 모듈의 process_iter를 사용합니다.
import psutil
import time
# 모니터링할 프로세스 이름
process_name = "chrome"
while True:
# 모든 프로세스 목록 가져오기
for process in psutil.process_iter(attrs=['name']):
if process.info['name'] == process_name:
# 프로세스가 실행 중인 경우
print(f"{process_name} 프로세스 실행 중")
break
# 주기적으로 체크 (예: 10초마다)
time.sleep(10)
파이썬 크롬 브라우저 실행 및 종료하여 종료 메세지 출력 확인 예제
아래는 크롬브라우저를 실행하고 파이썬에서 와치독 스크립트를 실행한 후 크롬을 종료했을 때 메세지가 실제 출력되는 예제입니다.
import psutil
import time
# 모니터링할 프로세스 이름
process_name = "chrome"
while True:
# 모든 프로세스 목록 가져오기
for process in psutil.process_iter(attrs=['name']):
if process.info['name'] == process_name:
# 프로세스가 실행 중인 경우
print(f"{process_name} 프로세스 실행 중")
break
else:
# 프로세스가 종료된 경우
print(f"{process_name} 프로세스가 종료되었습니다.")
# 주기적으로 체크 (예: 10초마다)
time.sleep(10)