статус процесса - sombi после kill процесса, который был открыт в подпроцессе python. Открывается и уничтожается subprocess.kill. - PullRequest
0 голосов
/ 13 декабря 2018

Я использую python с subprocess.Popen (), чтобы запустить FFmpeg с введенным URL-адресом прямой трансляции и создает файл wav каждые 30 секунд.Когда я пытаюсь убить процесс с помощью subprocess.kill (), он работает, но процесс все равно записывается в / proc /, и если я регистрирую системный монитор, статус процесса «Зомби».

Пока не завершен сценарий python, поэтому процесс удален из / proc, и я не вижу его в системном мониторе.

Как убить процесс, не закрыв сценарий python?

вот пример

#! /usr/bin/python3 
import os
import subprocess
import time

# Start ffmpeg in background.
folder_name = "path_to_file"
input_ = "https://kanlivep2event-i.akamaihd.net/hls/live/749629/749629/kanmoreshet_mp3/chunklist.m3u8"
ffmpeg_cmd = [
        "ffmpeg",
        "-y",
        "-loglevel", "8",
        "-thread_queue_size", "1500",
        "-i", input_,
        "-c", "copy",
        "-vn",
        "-f", "segment",
        "-segment_time", "30",
        "-ar", "8000",
        "-acodec", "pcm_s32le",
        "-ac", "1",
        "-strftime", "1",
        str(folder_name + '/' + input_.replace("/","") + '_*_*_%s.wav')
    ]
process = subprocess.Popen(ffmpeg_cmd)
# Check if the process is exist
def check_exist(process):
    print("pid - ", process.pid)
    if os.path.isdir("/proc/{}".format(process.pid)):
        print ("Yes")
    else:
        print("No")

check_exist(process)
process.kill()
time.sleep(20)
check_exist(process)
...