使用环境变量调用python中的子进程

2024-04-04

我正在尝试编写一个 python 脚本来使用 Plex 媒体扫描仪自动扫描 plex 的一部分。为此,我必须以运行 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)

感谢您的帮助。


正如乔丹在评论中指出的那样:

su 中的 - 使其成为重新初始化环境的登录 shell。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用环境变量调用python中的子进程 的相关文章

随机推荐

  • 如何使用 SQL 查询删除 PostgreSQL 中的所有模式?

    我需要删除数据库中的所有架构 除了public information schema以及那些LIKE pg 这是我发现的 这个变体似乎不起作用 CREATE OR REPLACE FUNCTION drop all RETURNS VOID
  • Snow Leopard 上的 PyObjc 和 Cocoa

    我即将开始我的 A 级计算项目 高中级别 该项目有望成为 Mac 操作系统的销售点应用程序 不幸的是 目前 Objective C 有点超出我的能力范围 如果我在项目中陷入困境 我没有人可以提供帮助 所以我可能会不及格这门课程 也无法进入大
  • 如何测试载波文件是否更改?

    我正在尝试测试代码中的图像是否随载波更改 但我找不到方法来执行此操作 即使文件无效 对象似乎也被标记为已更改 因此它并未真正更改 查看以下输出 rdb 1 job translated xliff
  • Java:计算两点之间的角度(以度为单位)

    我需要计算我自己的 Point 类的两点之间的角度 以度为单位 点 a 应为中心点 Method public float getAngle Point target return float Math toDegrees Math ata
  • Django REST Framework 自定义字段验证

    我正在尝试为模型创建自定义验证 以检查其start date在其之前end date事实证明这几乎是不可能的 我尝试过的东西 内置 Django 验证器 没有对此进行检查 我自己写的 就像这样 def validate date self
  • 更新 flutter 和 Xcode 后,Xcode 14.3 中缺少文件“libarclite_iphoneos.a”

    我有 flutter 项目 我正在尝试运行 iOS 版本 但在将 flutter 和 Xcode 更新到最新版本后出现错误 我使用 firebase core 插件 error Could not build the precompiled
  • 爱国者导弹浮动指向误差

    从计算机系统 程序员的角度http csapp cs cmu edu http csapp cs cmu edu 练习题2 51 我们在问题 2 46 中看到 爱国者导弹软件近似为 0 1 因为 x 0 000110011001100110
  • Azure 相同的 FTP URL 适用于共享相同应用程序服务计划的所有 Azure 网站

    我为单一应用程序服务计划创建了几个 Web 应用程序 对于所有这些应用程序 我看到一个 FTP URL 问题是 当我转到 URL 时 我可以看到一个 Site wwwroot 文件夹 其中仅显示一个应用程序 不是可以访问其他Web应用程序的
  • 在 Python 或 MATLAB 中从等值线图的像素中提取数据

    我有一个这样的等高线图 Now 如果我没有生成等值线图的数据 而我拥有的只是图像 如何从图像中提取每个像素的值并将其存储在数组中 MATLAB Python 中的任何建议或示例都会有帮助 如果您知道像素值 请使用find 您可以找到您想要的
  • 文本修饰:外观和计算值之间的明显差异

    我在处理与以下内容相关的代码时注意到了这一点 奇怪 a div 周围的链接 div 内的样式 https stackoverflow com questions 13595357 alink around div styling insid
  • EC2 Ubuntu 14 默认密码

    我有一个EC2实例运行Ubuntu 14我经常使用它连接SSH 现在我尝试使用 Windows 中的远程桌面连接到此实例 如图所示here https askubuntu com questions 592537 can i access
  • ggplot2交错轴标签

    我正在制作一个ggplot x 轴是因子 标签很长 我无法缩短标签 它们已经尽可能短了 我有兴趣使标签垂直偏移 我的偏好是让每个奇数标签的高度为 0 每个偶数标签的高度距离 x 轴更远 2 个单位 我看过这里 ggplot 希望帮助 htt
  • Rails 4.0 安装错误 -require: 无法加载此类文件 -- active_support (LoadError)

    我安装了新的 Ruby 2 0 和 Rails 4 0 当我执行 Rails new test app 时 我得到以下信息 有人遇到这个吗 devuser devbox rails 新 test app usr local lib ruby
  • 将二进制字符串转换为字节

    我有一个由 0 255 字节值组成的字符串 我需要将其转换为字节数组 我不想将范围 128 255 转换为 utf 8 事实上 该字符串已经以 utf 8 编码 我到底该如何解决令人沮丧的 不在 0 128 范围内 错误 gt gt gt
  • 如何在 Swift 中生成随机 unicode 字符?

    我当前尝试创建随机 unicode 字符生成失败 并出现错误 例如我的其他问题中提到的错误here https stackoverflow com questions 32158381 fatal error high and low su
  • 从 std::string 解析整数,但如果是浮点则失败

    在 C 和 C 中 有多种方法可以将字符串转换为整数 但我还没有找到解析浮点数时失败的转换方法 const float fnum std stof 1 5 std cout lt lt fnum lt lt std endl prints
  • 如何按顺序调用多个异步 javascript 函数?

    我试图按顺序调用以下函数 但它们不一定以正确的顺序返回 然后我了解了可以使用 回调 顺序调用的异步函数 如何使用回调使这些函数按顺序执行 getJSON http localhost search data php title title
  • WPF 进度栏未显示正确的进度

    我有一个应用程序 我正在其中分块上传文件 我的前端是WPF 我有一个进度条来显示文件上传进度 上传是由单独的线程完成的 进度条采用单独的形式 在上传开始时由子线程调用 我找到了文件中的块总数来设置进度条的最大属性 现在 对于上传的每个块 我
  • 在 HttpConfiguration 实例中的 ASP.NET Web API 应用程序中处理 json 漂亮的打印参数

    我需要在 ASP NET Web API 应用程序中添加和处理可选的 pretty 参数 当用户发送 pretty true 时 应用程序响应应该看起来像带有缩进的人类可读的 json 当用户发送 pretty false 或者根本不发送该
  • 使用环境变量调用python中的子进程

    我正在尝试编写一个 python 脚本来使用 Plex 媒体扫描仪自动扫描 plex 的一部分 为此 我必须以运行 plex 的用户身份运行扫描仪 在本例中为 plex 并为其提供环境变量 LD LIBRARY PATH 我尝试过使用 su