복붙노트

[PYTHON] 리눅스를 통한 파이썬 프로세스 목록

PYTHON

리눅스를 통한 파이썬 프로세스 목록

Linux에서 Python을 사용하여 프로세스 목록을 실행하려면 어떻게해야합니까?

해결법

  1. ==============================

    1./ proc 파일 시스템을보고있는 IMO는 ps의 텍스트 출력을 해킹하는 것보다 덜 불쾌합니다.

    / proc 파일 시스템을보고있는 IMO는 ps의 텍스트 출력을 해킹하는 것보다 덜 불쾌합니다.

    import os
    pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
    
    for pid in pids:
        try:
            print open(os.path.join('/proc', pid, 'cmdline'), 'rb').read().split('\0')
        except IOError: # proc has already terminated
            continue
    
  2. ==============================

    2.psutil을 플랫폼 독립적 인 솔루션으로 사용할 수 있습니다!

    psutil을 플랫폼 독립적 인 솔루션으로 사용할 수 있습니다!

    import psutil
    psutil.pids()
    
    [1, 2, 3, 4, 5, 6, 7, 46, 48, 50, 51, 178, 182, 222, 223, 224,
    268, 1215, 1216, 1220, 1221, 1243, 1244, 1301, 1601, 2237, 2355,
    2637, 2774, 3932, 4176, 4177, 4185, 4187, 4189, 4225, 4243, 4245, 
    4263, 4282, 4306, 4311, 4312, 4313, 4314, 4337, 4339, 4357, 4358, 
    4363, 4383, 4395, 4408, 4433, 4443, 4445, 4446, 5167, 5234, 5235, 
    5252, 5318, 5424, 5644, 6987, 7054, 7055, 7071]
    
  3. ==============================

    3.PSI와 같은 타사 라이브러리를 사용할 수 있습니다.

    PSI와 같은 타사 라이브러리를 사용할 수 있습니다.

  4. ==============================

    4.하위 프로세스를 작성하고 사용하는 보편적 인 방법은 하위 프로세스 모듈을 사용하는 것입니다.

    하위 프로세스를 작성하고 사용하는 보편적 인 방법은 하위 프로세스 모듈을 사용하는 것입니다.

    import subprocess
    pl = subprocess.Popen(['ps', '-U', '0'], stdout=subprocess.PIPE).communicate()[0]
    print pl
    

    이 명령은 인수로 된 파이썬 목록으로 나뉘어져 있으므로 쉘에서 실행할 필요가 없습니다. 기본적으로 subprocess.Popen은 단지 쉘 환경을 사용하지 않습니다. 이 때문에 우리는 Popen에게 'ps -U 0'을 단순히 공급할 수 없습니다.

  5. ==============================

    5.서브 프로세스 모듈을 사용하여 적절한 옵션을 사용하여 ps 명령을 실행합니다. 옵션을 추가하여 볼 프로세스를 수정할 수 있습니다. SO의 하위 프로세스에 대한 예제가 많이 있습니다. 이 질문은 예를 들어 ps의 출력을 구문 분석하는 방법에 대한 답변입니다 :)

    서브 프로세스 모듈을 사용하여 적절한 옵션을 사용하여 ps 명령을 실행합니다. 옵션을 추가하여 볼 프로세스를 수정할 수 있습니다. SO의 하위 프로세스에 대한 예제가 많이 있습니다. 이 질문은 예를 들어 ps의 출력을 구문 분석하는 방법에 대한 답변입니다 :)

    예제 답변 중 하나가 PSI 모듈을 사용하여 시스템 정보 (예 :이 예에서는 프로세스 표)에 액세스 할 수 있습니다.

  6. ==============================

    6.

    import os
    lst = os.popen('sudo netstat -tulpn').read()
    lst = lst.split('\n')
    for i in range(2,len(lst)):
        print(lst[i])
    
  7. from https://stackoverflow.com/questions/2703640/process-list-on-linux-via-python by cc-by-sa and MIT license