问题标签 [popen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1437 浏览

django - Django 子进程

如果这是重复的,我真的很抱歉,但我一直在寻找,但无法找到答案。

在 Django 中,我想做类似的事情(见评论):

我希望代码启动upload_file进程,然后立即将用户重定向到成功页面,而该upload_file进程在后台运行(速度很慢)。我认为子进程可能会这样做。

upload_file不幸的是,上面的代码似乎在将用户重定向到成功页面之前等待进程完成,这不是我需要的。

请注意,这upload_file是我views.py文件中的 Python 函数。我听说过popen——我想我可以转换def upload_file成一个独立的 Python 脚本并从命令行运行它——它会开始运行然后立即重定向用户,如我所愿吗?还是我应该使用某种线程/进程?

- - 更新 - - -

我想我可能已经弄清楚了……如果我只是做p.start()而不是p.join(),那么该过程会立即重定向。不过,这有什么危险吗?

0 投票
2 回答
2285 浏览

python - 无缓冲的子进程输出(缺少最后一行)

我一定忽略了一些非常明显的东西。我需要执行一个 C 程序,实时显示它的输出,最后解析它的最后一行,这应该很简单,因为打印的最后一行总是相同的。

但是,有时不会打印最后一行。Popens 的bufsize的默认值为0,因此它应该是无缓冲的。我也尝试在退出之前将fflush(stdout)添加到 C 代码中,但无济于事,但似乎完全没有必要在退出程序之前刷新流。

任何人的想法?

0 投票
5 回答
4972 浏览

c++ - 基于 Linux 时间样本的分析器

精简版:

Linux 是否有一个好的基于时间的采样分析器?

长版:

我通常使用OProfile来优化我的应用程序。我最近发现了一个让我感到疑惑的缺点。

问题是一个紧密的循环,产生了 c++filt 来破坏 c++ 名称。我只是在寻找另一个瓶颈时偶然发现了代码。OProfile 没有显示代码有任何异常,所以我几乎忽略了它,但我的代码意识告诉我优化调用并查看发生了什么。我将popenc++filt 更改为abi::__cxa_demangle. 运行时间从一分钟多到一秒多一点。大约 x60 加速。

有没有办法我可以配置 OProfile 来标记popen呼叫?由于配置文件数据现在存在,OProfile 认为瓶颈是堆和std::string调用(顺便说一句,它曾经优化过将运行时间降低到不到一秒,超过 2 倍加速)。

这是我的 OProfile 配置:

是否有另一个 Linux 分析器可以找到瓶颈?

我怀疑问题在于 OProfile 仅将其样本记录到当前运行的进程中。我希望它始终将其样本记录到我正在分析的过程中。因此,如果进程当前被切换(阻塞 IO 或popen调用),OProfile 只会将其样本放在被阻塞的调用中。

如果我不能解决这个问题,OProfile 只有在可执行文件接近 100% CPU 时才有用。对于阻塞调用效率低下的可执行文件,它无济于事。

0 投票
2 回答
960 浏览

python - 如何将 Ruby 的 IO.popen 调用转换为 Python 的 subprocess.Popen 调用?

我已经阅读了文档,并且在 REPL 中尝试了很多东西,并在 Google 上搜索过,但我一生都无法理解subprocess .Popen 在 Python 中是如何工作的。

这是我正在使用的一些 Ruby 代码:

如何使用 subprocess.Popen 将其翻译成 Python?

0 投票
2 回答
258 浏览

python - Subprocess 语句在 python 控制台中有效,但在 Serverdensity 插件中无效?

在 python 控制台中,以下语句工作得非常好(我想以这种方式使用 eval 并不是很好,但在这种情况下它只是用于测试目的,将被正确的解析替换)

当我将其转换为Serverdensity 插件时,它会在每次执行插件时不断使 agent.py 守护进程崩溃。我能够将其缩小到子流程行,但找不到原因。异常捕获似乎也不起作用。

插件的外观如下:

我对使用 python 很陌生,并且无法真正弄清楚为什么这不起作用。非常感谢您的想法:)

0 投票
4 回答
8678 浏览

python - Python 的 Popen 清理

我想使用一个相当于在 perl 中管道一些 shell 命令的 python。类似于 python 版本的 open(PIPE, "command |")。

我转到子流程模块并尝试以下操作:

这适用于读取输出的方式与我在 perl 中的方式相同,但它不会自行清理。当我退出解释器时,我得到

在 stderr 上喷了几百万次。我想我曾天真地希望这一切都会为我处理好,但事实并非如此。在 p 上调用 terminate 或 kill 似乎没有帮助。查看进程表,我看到这会杀死 /bin/sh 进程,但将子 gzip 留在原地抱怨管道损坏。

这样做的正确方法是什么?

0 投票
2 回答
68600 浏览

python - 如何从 python 调用程序而不等待它返回

有没有办法从 python 调用程序而不等待它返回?我创建了一个脚本,它将程序复制到目录并运行该程序。但是当我从 python 调用程序时,python 脚本在我启动的程序退出之前不会退出。我试过 os.system 和 Popen。还有另一种方法吗?

添加信息:带有 os.P_DETACH 的 os.spawnl 仍然不起作用;根据文档,“P_DETACH 类似于 P_NOWAIT,但新进程与调用进程的控制台分离”。但它仍然以某种方式附加到我的调用进程(调用脚本在任何被调用的可执行文件返回之前不会退出)

程序:

执行 test.exe 后,它会打印 Done。但它不会终止脚本的执行(脚本进程仍在运行)。尝试创建一个守护线程并使用 P_DETACH Popen,仍然不行。

0 投票
1 回答
282 浏览

popen - 如何向_popen发送值?

我这里有问题。我需要向“text1”和“text2”发送一些值。例如,

文本1 =

...下面的代码将引用这些值..

怎么可能达到。我做了很多方法,它不断给我指针错误。

0 投票
5 回答
3165 浏览

windows - 在 Windows XP 上使用 doxygen 1.6.3 的输入过滤器出现问题

我正在尝试使用 doxygen 为我编写的一些 matlab 类生成文档。我正在使用doxygen-matlab包,其中包含一个 perl 脚本,用于将 matlab .m 文件合并到 c++ 样式的注释文件中,以便 doxygen 可以读取它们。

在我的 doxyfile 中,我已经设置(根据说明)

但是,当代码运行时,而不是在输入文件上运行脚本,它似乎只是使用 .pl 的默认窗口设置打开脚本。

IE,如果我将 .pl 与记事本相关联,则记事本会为 doxygen 尝试解析的每个输入文件打开一次脚本。如果我将 .pl 与 perl.exe 相关联,则脚本运行并抛出无参数错误

参数必须在 C:\doxygenMatlab\m2cpp.pl 第 4 行包含文件名 -1。

doxygen 文档说

所以我想知道 popen() 和 windows 是否有一些我可以修复的问题。

0 投票
1 回答
476 浏览

c - C中的变量popen调用

我正在尝试DEL在 Win32 C 程序中执行 MS-DOS 命令,我已经知道system并且popen可以用于此。但是,问题在于const char命令都需要字符串文字(type),我需要类似于此 Perl 代码的 DOS 等价物(或多或少,不知道它是否真的有效):

这显然必须对命令使用字符串文字rm。C 中是否还有其他一些子进程函数允许将 char 数组作为进程名称的参数?