我需要在linux上的bash中找到某个java进程的pid。
如果只有一个java进程,
PID=$(pgrep java)
很管用。
对于多个java进程,它变得更加复杂。我手动运行pstree,找到我首先需要的java进程的祖先,然后找到问题中的java进程。在bash中可以这样做吗?基本上,我需要在伪代码中显示的功能:
Having `processname1` and `processname2`
and knowing that `processname2` is in the subtree of 'processname1',
find the pid of `
Process p = Runtime.getRuntime().exec(command);
is = p.getInputStream();
byte[] userbytes = new byte[1024];
is.read(userbytes);
我想在linux os中从java执行一个shell命令。但是pmd报告说不要使用java Runtime.exec()。为什么?原因何在?有没有替代Runtime.exec()的方法?
我有一个基本的java服务器应用程序,它有100个工作线程,在urls上做简单的HEAD请求。为此,我使用了HttpClient 4.x。
运行几分钟后,我的程序就冻结了几分钟,我不知道为什么。查看可视vm监视器报告的屏幕截图。你可以看到它是平直的。在这段时间内,我无法获得一个好的线程转储,并且visual vm只是冻结,直到它被解锁。有没有人知道我可以做些什么来开始调试这个家伙?
可视化VM:
以下是我试图在jstack转储处于冻结状态时的输出:
jstack -F 4325
Attaching to process ID 4325, please wait...
Debugger att
我有一个shell脚本,它在opensuse linux下运行,它启动一个java应用程序(在jar下),该脚本是:
#!/bin/sh
#export JAVA_HOME=/usr/local/java
#PATH=/usr/local/java/bin:${PATH}
#---------------------------------#
# dynamically build the classpath #
#---------------------------------#
THE_CLASSPATH=
for i in `ls ./lib/*.jar`
do
THE_CLA
我已经安装了操作系统管理器并设置了备份配置。当它试图同步mongodb部署时,它会出现一个错误,因为它无法在/opt/mongodb/mms/mongodb-releases中找到mongodb。
下面是错误,这是备份daemon- backup.jobs.590664394c9f732dd6c88b7c.tax引发的错误
Failed to start mongod
com.xgen.svc.brs.util.GenericMongoManager$MongoManagerConfigException: Could not find mongod. Found /opt/mongod
我们在服务器上使用jstack来检测java应用程序是否发生死锁。它不能在我们的Linux服务器上工作。我认为操作系统版本是:
$cat /etc/issue.net
Red Hat Enterprise Linux Server release 5.6 (Tikanga)
Kernel \r on an \m
服务器上运行的Java版本:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19
我的Tomcat服务器已经运行了几天,但是我无法正常关闭它,因为在执行shutdown.sh时,我得到了以下错误:
# root@iZ94hjppdqzZ:~/projects/taolijie# cat hs_err_pid5519.log
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# P
我如何修改下面的ruby脚本才能让它工作呢?(我使用的是Linux。)
# 1. Launch a java server:
system "java -jar myJavaServer.jar -someArgument -otherArgument"
# 2. Execute some ruby code (with the server running):
[...]
# 3. Stop the java server:
system "killall java"
我认为java服务器必须在单独的ruby线程中启动,这样以下代码才能在服务器运行时执行.
整整一天,我都在尝试将一个环境变量添加到linux广告中,它不起作用。这就是我所关注的。这就是在.profile文件中所写的内容。
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it e