【linux查看进程(java)启动时间】教程文章相关的互联网学习教程文章

java多线程---进程和线程

进程和线程 什么是进程进程是操作系统运行的基本单元,进程就是一段程序的执行过程就是,我们打开电脑的任务管理器,可以看到很多程序正在执行,这些程序都是进程,腾讯QQ的执行时一个进程、微信的执行也是一个进程等等。进程是操作系统分配资源和调度的独立单位,它是程序执行的一个实例,腾讯QQ不是一个进程,腾讯QQ的执行时一个进程,进程是一个动态地概念,一个程序执行时系统就会为它创造一个进程,然后把该进程放到进程的就...

Erlang进程与Java线程

我正在读“Elixir in Action” book by Sa?a Juri?, and in the first chapter它说:Erlang processes are completely isolated from each other. They shareno memory, and a crash of one process doesn’t cause a crash of otherprocesses.Java线程也不是这样吗?我的意思是当Java线程崩溃时,它也不会崩溃其他线程 – 特别是,如果我们正在查看请求处理线程(让我们从这个讨论中排除主线程)解决方法:在我之后重复:“这些是不同的...

java – 在ubuntu上限制jvm进程内存【代码】

我知道有同样的问题,如this one被问及答案.我对答案不满意,所以让我在这里详细介绍一下这些消息. 我尝试使用JVM OPT启动我的应用程序:-Xmx128m -Xms32m -XX:MaxPermSize = 64m.当应用程序启动时我通过输入cat / proc / 10413 / status检查内存使用情况,我发现vmsize超过600512 kB!这比我的设置大.我想知道如何限制进程的jvm内存使用.Name: java State: S (sleeping) Tgid: 10413 Pid: 10413 PPid: 1 TracerPid: ...

java – 如何发信号通知守护进程来改变行为

我编写了一个作为守护进程启动的Java应用程序(我守护进程重定向stderr和stdout并通过bash关闭stdin).但是,偶尔我希望能够发送此应用程序并通知它更改其行为的某些部分.我需要能够从终端向应用程序发送消息,因此任何需要图形实用程序的东西都是禁止的. 行为的改变相当简单.我需要切换应用程序中一个线程的状态,以及一种优雅地关闭应用程序的方法. 实现这一目标有哪些选择?我知道我可以在进程中有一个线程来监听某种类型的套接字消息...

java – 如何在单独的进程中运行JUnit测试?【代码】

我有两个使用JUnit实现的集成测试.两个测试都执行对远程服务器的调用,服务器目标由环境变量配置:System.setProperty("property", "value1");棘手的是,对于2次测试,这些属性必须不同.如果我为每个单元测试设置环境变量它不起作用,因为我们使用的中间件在第一次调用时缓存属性值而不再评估它(对于第二个测试). 我相信解决方案可能是在单独的流程中运行这些单元测试.我看到类似的讨论here,但也许有更优雅的方式与JUnit4这样做?这个问...

java – 杀死excel进程而不保存【代码】

我有这个代码可以正确地杀死任何正在运行的Excel进程.public static void killExcel(){while (isProcessRuning("EXCEL.EXE")){Runtime.getRuntime().exec("taskkill /IM EXCEL.EXE");} }public static boolean isProcessRuning(String serviceName) throws Exception {Process p = Runtime.getRuntime().exec(TASKLIST);BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));String line;while...

退出后,Java流程构建器子进程继续【代码】

我正在开发一个自动更新脚本,该脚本应该能够在守护程序完成后重新启动它. 我正在尝试这个:final ArrayList<String> command = new ArrayList<String>();String initScriptPath = Config.GetStringWithDefault("init_script", "/etc/init.d/my-daemon");command.add("/bin/bash");command.add("-c");command.add("'" + initScriptPath + " restart'");StringBuilder sb = new StringBuilder();for (String c : command) {sb.append...

在当前进程中获取JavaVM *的所有实例?【代码】

这仅适用于Windows.JNI是否提供任何返回调用进程的所有JavaVM *实例的API?考虑以下场景,将一个C dll注入java.exe进程.现在问题是,C dll如何在运行它的进程中找到JavaVM *的当前实例? 据我所知,所有JNI调用API都需要一个只能从JavaVM *获取的JNIEnv对象吗? http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/functions.html 获取JavaVM *的传统方式是通过JNI_OnLoad,但由于我不是在编写一个由Java使用的本机库,所以我认为...

Java中的后台进程【代码】

我一直在为Java 7中的OCP考试做准备.我正在阅读的这本书涉及到一些我完全不理解的东西. 那是,If the JVM is invoked indirectly by IDE, or if the JVM is invoked froma background process, then the method call System.console() willfail and return null.在什么情况下,如何从后台进程调用JVM?有人可以详细说明吗?最好的祝福解决方法:假设您使用的是UNIX系统,并且运行的程序可以请求两个操作数并生成它们的总和.如果您将其调...

java – Scala检查外部进程ID(pid)当前是否正在运行?【代码】

我需要检查当前是否正在使用Scala运行指定的进程. 我只有PID. Scala有内部函数还是需要使用ps解析它? 谢谢.解决方法:AFAIK,Java或Scala没有此类功能.如果您使用的是基于UNIX的计算机,是的,最好的办法是使用ps命令. 您可以使用PID with ps命令,如下所示:ps -p 8238 -o "pid="这里PID是8283,我们要求ps搜索它,如果它存在,只需打印它.scala> import sys.process._ import sys.process._scala> def processExists(pid: Int) = pid ==...

为什么这个java进程不释放内存?

我编写了一个java应用程序,我在Fedora 24下运行了java进程.然后我检查了jconsole,发现它使用了大约5到10兆字节的内存.垃圾收集的效果在图中也可见. 这是截图: 然后我检查了我的系统监视器,发现相同的进程ID有超过100兆字节的内存使用量. 这是截图:请告诉我为什么这个过程没有释放未使用的内存? 有没有办法释放它?解决方法:使用的堆和已分配的堆之间存在差异.图中的蓝线是用过的堆 – 实际持有对象的堆的数量.未显示的是分配的堆...

java – 捕获来自另一个进程的system.out消息

我有一个启动JVM(2)的JVM(1).我希望能够在JVM(1)中监视来自JVM(2)的System.out.println()调用.解决方法:直截了当的方式是: > JVM A执行系统命令以启动JVM B.>然后JVM A读取B的所有输出 有关如何执行此操作,请参阅here(实质上,调用java SomeClass …或任何其他命令然后写入stdout / stderr之间没有区别). 如果你的两个JVM独立启动,那么剩下的唯一选择就是B的“启动命令”将所有输出重定向到一个文件中.然后,根据操作系统,您只能希望...

java – 从Windows机器远程运行Linux上的进程

我希望能够从运行在Windows机器上的JAVA应用程序远程运行Linux机器上存在的进程.做这个的最好方式是什么?或者可能对我有帮助的在线资源?非常感谢.解决方法:您可以使用许多Java SSH客户端库中的任何一个,例如javassh,只要Linux机器运行sshd(并且防火墙都设置为允许ssh流量通过),这很可能就是这种情况.有许多可能的方法来配置ssh身份验证,基本上可以在网上发送密码(安全),或使用公钥/私钥对(RSA或DSA) – 后者通常更可取,但你需要与...

是否可以在Java中对一个进程进行双重分叉?【代码】

我需要双分割vmware,因此它不会继承终端ID(TTY / pts). 这是我到目前为止,但我无法访问runtime.exec进程来分叉另一个进程(删除终端ID).Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec("vmware");有没有办法在Java中“daemonize”?解决方法:你需要编写一个小的C或C程序来做额外的fork,setsid,所有这些.

进程间的通信方式(java)

由于内存管理的一些机制,导致两个进程间并不能直接的进行通信(在独立的用户空间),因此我们需要利用一些介质来完成两个进程之间的通信。以下是常用的进程间通信方式。管道(Pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(半双工:数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。) 有名管道(name...