Вызов подпроцесса в python с переменными среды

Я пытаюсь написать скрипт Python для автоматического сканирования раздела плекса с помощью сканера Plex Media. Для этого я должен запустить сканер как пользователь, запустивший plex (в данном случае это «plex»), а также предоставить ему переменную окружения «LD_LIBRARY_PATH». Я попытался использовать оба subprocess.call и subprocess.Popen без разницы. В любом случае, я не получаю никакого вывода. Вот код, который я использую:

#!/usr/bin/python
import os
import subprocess
import shlex

env = os.environ.copy()
env['LD_LIBRARY_PATH'] = '/usr/lib/plexmediaserver'
s = "/bin/su - plex -c '/usr/lib/plexmediaserver/Plex\ Media\ Scanner -s -c 2'"
task = shlex.split(s)
exitCode = subprocess.call(task, env=env, shell=True)

Теперь у меня уже есть рабочая версия, которая делает то, что я хочу, но мне пришлось прибегнуть к использованию сценария-оболочки bash для этого. Вы можете увидеть код ниже:

#!/bin/sh
export LD_LIBRARY_PATH=/usr/lib/plexmediaserver
/usr/lib/plexmediaserver/Plex\ Media\ Scanner $@

И соответствующая строка скрипта, которая его вызывает:

exitCode = subprocess.call("/bin/su - plex -c '/var/lib/deluge/delugeScripts/pms.sh -s -c 2'", shell=True)

Спасибо за вашу помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос