Articles of 进程

multithreading进程的线程ID是否可以与其他正在运行的进程的进程ID相同?

我试图find一种方法来唯一标识多进程环境中的线程。 我有一个服务器,跟踪不同的进程连接到它,其中一些是multithreading的,其中一些不是。 为了从multithreading连接中识别线程,我使用线程ID作为唯一的标识符(在任何给定时间最多连接1个multithreading进程)。 我的问题是:是否有可能其中一个线程的线程ID可能与系统上运行的另一个进程的进程ID相同? 先谢谢您的帮助!

打开一个shell并在java中与其I / O进行交互

我想打开一个shell(xterm)并与之交互(写入命令并读取shell的输出) 这是一个不能工作的代码示例: public static void main(String[] args) throws IOException { Process pr = new ProcessBuilder("xterm").start(); PrintWriter pw = new PrintWriter(pr.getOutputStream()); pw.println("ls"); pw.flush(); InputStreamReader in = new InputStreamReader(pr.getInputStream()); System.out.println(in.read()); } 当我执行这个程序时,打开一个“xterm”窗口并且不input“ls”命令。 只有当我closures窗口,我得到一个“-1”打印,没有任何东西从shell读取 重要- 我知道我可以使用: Process pr = new ProcessBuilder(“ls”)。start(); 要获得输出,但我需要打开其他用途的“xterm” 非常感谢

Linux:捕获已经运行的进程的输出(纯C!)

我的情况如下:我有很多小的小玩意儿(非常接近路由器,不完全是,但无论如何,这是不相关的); 他们正在运行一个基于MIPS的Linux发行版。 为了控制它们,可以在那里telnet(通过串行端口),然后向交互式的bash-like shell发出命令,然后写回一些输出。 shell的input和输出都连接到/ dev / ttyAS0。 现在,我想自动化所有这一切,即编写一个程序,它将在gizmo中运行,是一个监听某个端口的小型服务器,可以将任何命令传递给所述shell,捕获shell的输出并将其中继回到谁联系到服务器。 一世: 1)可以在Gizmo里面安装(小,<500KB)程序2)不能修改操作系统,启动脚本,shell,任何东西3)有root权限4)知道如何写SOAP服务器5)知道如何获得一个SOAP消息,将它翻译成一个命令并将其注入到/ dev / ttyAS0中6)不知道如何捕获shell的回复7)知道如何获取shell的回复,将其转换回SOAP消息并回复原始查询者。 所以基本上,问题是6):如何在/ dev / ttyAS0中注入一个string,从而使shell执行它,捕获shell的输出? 我知道 Redirecting Output from a Running Process 也就是说,我知道如果我在箱子里面运行GDB(或者strace),我可以改变shell的stdout,但是我不能在那里安装它 – 它太大了,反正这个方法看起来太像一个黑客了。 所以,总结一下: 如何在不使用gdb或strace的情况下捕获已经运行的进程的标准输出(IN PURE C),而无法访问进程的启动方式? 或者 – 几乎等同于 – 如何捕捉正在写入terminal的内容,IN PURE C?

PHP-FPM – 杀死所有属于php-fpm的linux进程 – 一个命令行

我注意到,PHP-FPM并不总是正确关机。 问题是一些服务依然存在,无法重新启动。 我想要一个命令行来运行,这将杀死所有的php-fpm进程,所以我可以将它添加到init.d,所以停止将确保它们全部被删除。 如果我运行以下,我可以看到所有的过程: ps -aux | grep php-fpm 他们显示如下: 793 102971 0.0 0.1 4520304 5868 ? S 13:20 0:00 php-fpm: pool tokyodating.co 794 102972 0.0 0.1 4520304 5868 ? S 13:20 0:00 php-fpm: pool turkeydating.co 794 102973 0.0 0.1 4520304 5868 ? S 13:20 0:00 php-fpm: pool turkeydating.co 794 102974 0.0 0.1 4520304 5868 […]

如何findunix上没有日志文件的死进程的原因?

这是一个面试问题。 开发者开始了一个过程。 但是当一个客户想要使用这个过程时,他发现这个过程并没有运行。 开发人员login,发现过程中死亡。 开发者怎么知道什么是错的? 跟进:应该将日志写入文件的正在运行的进程。 但是文件中没有日志。 开发者怎样才能弄清楚在这个过程中发生了什么? 我想:如果程序可以重新运行,我将使用gdb来跟踪进程。 如果不是,请检查进程(应用程序)中的输出文件。 或者,添加打印到代码。 但是,还有其他的方法可以通过引用操作系统生成的一些信息来实现吗?

从multithreading应用程序生成进程

我有一种情况,我需要从一个非常大的multithreading应用程序中产生一个辅助进程,但是我没有完全的控制权。 现在我正在使用fork() / exec() 。 这在很多情况下都是有效的,但是在某些情况下,在exec()发生之前,孩子会奇怪地崩溃。 我怀疑这是因为fork()multithreading应用程序通常被认为是一个真正的坏主意。 我真的很喜欢以primefaces方式启动一个进程的方式,没有fork()父进程:所有文件描述符closures,环境设置我想要的方式,CWD设置等。这应该避免所有的fork()我的multithreading父应用程序,并处理文件描述符inheritance,等posix_spawn()应该是理想的。 不幸的是,在Linux上, posix_spawn()使用fork()和exec() 。 vfork()被定义为挂起父进程,直到subprocess调用exec() 。 这似乎更像我想要的,但我的理解是, vfork()通常被认为是一个历史遗迹这些天,相当于fork() —这仍然是这种情况? 处理这个问题最糟糕的方式是什么? 注意: 我不能在任何线程启动之前产生我的进程(因为我不能在那个时候运行代码) 由于外部的要求,我不能重新devise我的应用程序不需要帮助程序 在产卵辅助过程之前,我不能暂停所有的线程,因为它们不属于我 这是在Linux上。 涉及Java,但我所有的代码都在C

如何在Linux中每5秒钟查找一个特定进程的内存消耗量

我只想知道如何在特定时间内find特定进程的内存消耗(比如5秒) 我是新来的Linux。 所以,这样做的详细步骤将不胜感激

Linux – 线程和进程调度优先级

如果我们在linux上使用默认调度策略创buildpthreads(pthread_create)或进程(fork),那么调度器会在调度它们时将进程和线程的优先级视为相同的优先级吗? 让我们说,有一个线程的进程P1和P2线程T1 T2的进程 可以说只有一个核心。调度是P1 P1 P1 T2 P1 T1 P1 T2 要么 P1 T1 T2 P1 T1 T2

PID,PPID和TGID的含义

什么是Linux内核首字母缩略词PID,PPID,TGID代表什么? 我在strace-pids上偶然发现了他们。

在linux中用子节点recursion地杀死R进程

我正在寻找一个通用的方法来启动,然后杀死一个R进程,包括可能调用的所有分支或其他进程。 例如,用户像这样运行脚本: library(multicore); for(i in 1:3) parallel(foo <- "bar"); for(i in 1:3) system("sleep 300", wait=FALSE); for(i in 1:3) system("sleep 300&"); q("no") 用户退出R会话后,subprocess仍在运行: jeroen@jeroen-ubuntu:~$ ps -ef | grep R jeroen 4469 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R jeroen 4470 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R jeroen 4471 1 0 16:38 pts/1 00:00:00 /usr/lib/R/bin/exec/R jeroen 4502 4195 […]