Я использую 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)