我需要获取通过Java的Runtime.getRuntime().exec()命令启动的进程的PID。
我知道如何在JNA中这样做。但我真的想用JNI来做这件事,并创建我自己的库。有人知道怎么做吗?
import java.lang.reflect.Field;
class GetPid
{
public native int getPid( long procHandle);
static
{
System.loadLibrary("getpid");
}
public static void main(Strin
使用Java,我在linux环境中执行一个进程,如下所示
Process startPingProcess = Runtime.getRuntime()().exec(ping -c 50 74.125.228.71);
我们在java中使用startPingProcess.exitValue()检查进程是否已经完成执行,如果正常完成,它将执行return 0。
假设我通过执行下面的代码在中间终止了上面启动的进程
Runtime.getRuntime()().exec(kill -2 processid); - where processid is process id of above st
我想写一个像系统监视器这样的程序。我想要一个程序列表,上面有它们的进程ID以及CPU和RAM的使用情况。我知道Linux将此信息写入/proc文件夹,但有人告诉我,我也可以使用一些函数来获取它。例如,一个程序将返回如下列表:
name PID RAM
sh 3904 72KIB
我想用C++编写代码。
如果程序使用ptrace来检测它是否在调试器中运行,我发现了下面的技巧:
catch syscall ptrace
commands 1
set ($eax) = 0
continue
end
有人能解释一下它是怎么工作的吗?我试图在i r eax之后插入commands 1,但是我不理解我得到的负值:
Catchpoint 1 (call to syscall ptrace), 0x00007ffff778af1e in ptrace (request=PTRACE_TRACEME) at ../sysdeps/unix/sysv/linux/ptrace.c:45
45 ../sysde