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 에서 실행했을 때 전혀 다른 값으로 리턴되는지 원인을 알고 싶습니다.

혹은 위 프로그램을 개발하기 위해 더 나은 방법이 있다면 도움 부탁드립니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 그런 솔루션이 한두개가 아닌데.. 뭔가 이유가 있어서 별도로 개발하고 계신 거죠? 엽토군 2020.12.9 11:49

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)