ubuntu linux 18.04 환경에서 프로세스 체크 및 실행 프로그램을 개발 중 입니다. (python3)
조회수 460회
ubuntu linux 18.04 환경에서 실행 중인 프로세스들에 대해 프로세스가 실행, 종료 상태를 체크하여 만약 종료되었으면 해당 프로세스를 다시 실행 시켜주는 프로그램을 개발 중 입니다. (python3)
그래서 shell 명령어로 단순히 프로세스를 찾고 0 또는 1로 체크하여 프로세스를 실행시켜주려고 합니다.
import subprocess
mResult = subprocess.check_output("pgrep -lf processname | wc -l", shell=True) print('Result : ', int(mResult))
위와 같이 예제로 실행하면 리턴되는 mResult 값이 실행되어 있으면 3, 아니면 2으로 나옵니다. (위 값은 상황에 따라 상시 변경됩니다...)
하지만 터미널에서 위 'pgrep -lf processname | wc -l'을 직접 입력하면 실행되어 있으면 1, 아니면 0으로 리턴되구요.
왜 python 에서 실행했을 때 전혀 다른 값으로 리턴되는지 원인을 알고 싶습니다.
혹은 위 프로그램을 개발하기 위해 더 나은 방법이 있다면 도움 부탁드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력