Tag: 进程

从线内分叉是否安全?

让我解释一下:我已经在Linux上开发了一个应用程序,它分叉和执行外部二进制文件并等待它完成。 结果由fork +进程独有的shm文件传递。 整个代码封装在一个类中。 现在我正在考虑线程化,以加快速度。 拥有许多不同的类函数实例,并发地(使用不同的参数)分离和执行二进制文件,并与其自己的独特的shm文件进行通信。 这个线程安全吗? 如果我在一个线程内分叉,除了安全之外,还有什么我需要注意的吗? 任何意见或帮助,非常感谢!

如何在Python中运行另一个脚本而无需等待它完成?

我正在为一个用户创build一个小仪表板,允许他运行特定的工作。 我正在使用Django,因此我希望他能够单击链接来启动作业,然后将该页面返回给他,并显示作业正在运行的消息。 这项工作的结果稍后将通过电子邮件发送给他。 我相信我应该使用subprocess.Popen但我不确定这一点。 所以在伪代码,这是我想要做的: if job == 1: run script in background: /path/to/script.py return 'Job is running'

.NET的 – WindowStyle =隐藏与CreateNoWindow = true?

当我开始一个新的过程时,如果我使用这个过程,会有什么不同? WindowStyle = hidden 或者 CreateNoWindow = true ProcessStartInfo类的属性?

如何检查在Python中是否存在具有给定pid的进程?

有没有办法检查一下,如果一个PID对应于一个有效的过程? 我得到一个不同于os.getpid()来源的pid,我需要检查是否有一个与该pid进程不存在的机器上。 我需要它在Unix和Windows中可用。 我也在检查是否PID未被使用。

pythonsubprocess中的多个input和输出进行通信

我需要做这样的事情,但我需要创build一个可以给予input和输出多次的subprocess。 该post的接受答案有很好的代码… from subprocess import Popen, PIPE, STDOUT p = Popen(['grep', 'f'], stdout=PIPE, stdin=PIPE, stderr=STDOUT) grep_stdout = p.communicate(input=b'one\ntwo\nthree\nfour\nfive\nsix\n')[0] print(grep_stdout.decode()) # four # five …我想继续像这样: grep_stdout2 = p.communicate(input=b'spam\neggs\nfrench fries\nbacon\nspam\nspam\n')[0] print(grep_stdout2.decode()) # french fries 但是,唉,我得到以下错误: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/subprocess.py", line 928, in communicate raise ValueError("Cannot send input after […]

在两个应用程序间共享内存

我有两个不同的Windows应用程序(两个不同的人写代码)。 一个用C ++编写,另一个用C#编写。 我需要一些方法来在它们之间共享RAM中的数据。 一个人必须写数据,另一个只读数据。 我应该用什么来使其最有效和快速? 谢谢。

写入Java进程的InputStream

我有一个代码,通过启动一个Java过程(即:执行一个编译的Java代码) ProcessBuilder builder = new ProcessBuilder("java", "Sample", "arg1", "arg2"); builder.redirectErrorStream(true); Process process = builder.start(); 通过这个,我基本上可以处理输出和错误 OutputStream stdin = process.getOutputStream(); // <- Eh? InputStream stdout = process.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(stdout)); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin)); // reader.readLine() blah blah 现在,我怎样才能发送input到stdin ? 也就是说,如果进程执行的代码有一个等待input的行,如下所示: Scanner scan = new Scanner(System.in); String val = scan.nextLine(); System.out.println(val); […]

如何用ProcessBuilder设置工作目录

我正在尝试在Ubuntu的主目录中启动一个进程。 我得到一个数组越界的exception。 这里是代码: Process p = null; ProcessBuilder pb = new ProcessBuilder(); pb.directory(new File("/home")); p = pb.start(); 这是一个例外: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at java.lang.ProcessBuilder.start(ProcessBuilder.java:459) at tester.Main.main(Main.java:31) Java Result: 1

如何等待非subprocess退出

对于subprocess,可以使用wait()和waitpid()函数暂停当前进程的执行,直到subprocess退出。 但是这个函数不能用于非subprocess。 是否还有另一个function,可以等待任何进程退出?

使用Runtime.exec从Java应用程序启动JVM进程?

我希望能够从现有的Java应用程序启动Java服务器进程,并监视stdoutput和stderror,并将输出redirect到文件。 是使用“Runtime.exec”并像其他操作系统进程一样处理应用程序的最佳方法,或者是否有更适合新JVM的应用程序。 这是在Java 1.5上