如何在ubuntu中为java应用程序命名进程
我在ubuntu中运行了两个java应用程序,我在谷歌上搜索了一下,但是我不知道如何给每个java应用程序指定唯一的进程名。我以jar文件java-jar app.jar的形式运行这些应用程序。但是当我看到使用shell命令top的进程时 它只显示java,而不显示应用程序名称。有关这方面的任何帮助。您可以在终端上尝试ps-aef | grep java。如何在ubuntu中为java应用程序命名进程,java,ubuntu,Java,Ubuntu,我在ubuntu中运行了两个java应用程序,我在谷歌上搜索了一下,但是我不知道如何给每个java应用程序指定唯一的进程名。我以jar文件java-jar app.jar的形式运行这些应用程序。但是当我看到使用shell命令top的进程时 它只显示java,而不显示应用程序名称。有关这方面的任何帮助。您可以在终端上尝试ps-aef | grep java。 它将列出正在运行的Java命令,您可以通过查看命令参数从中推断出应用程序名称。如果要启动/停止Java进程,您可以执行如下启动脚本: #!/
它将列出正在运行的Java命令,您可以通过查看命令参数从中推断出应用程序名称。如果要启动/停止Java进程,您可以执行如下启动脚本:
#!/bin/sh
PROGRAM_NAME=sicm
PROGRAM_HOME=/usr/local/sicm
PIDFILE=/var/run/$PROGRAM_NAME.pid
application_start() {
CMDLINE="/usr/lib/java/bin/java -jar $PROGRAM_NAME.jar"
echo -n "Starting $PROGRAM_NAME daemon: $CMDLINE"
cd $PROGRAM_HOME
/usr/lib/java/bin/java -classpath lib -jar $PROGRAM_NAME.jar &
ps -Ao pid,command | grep java | grep $PROGRAM_NAME.jar | awk '{print $1}' > $PIDFILE
echo
}
application_stop() {
echo -n "Stopping $PROGRAM_NAME daemon..."
if [ -r $PIDFILE ]; then
PID=`cat $PIDFILE`
if [ $PID -gt 0 ]; then
kill $PID
echo
sleep 1
fi
rm -f $PIDFILE
fi
killall $PROGRAM_NAME
}
application_restart() {
application_stop
sleep 1
application_start
}
case "$1" in
'start')
application_start
;;
'stop')
application_stop
;;
'restart')
application_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
解决方案
如果您在后台运行命令add&最后,您可以使用以下命令获得PID:
上次在后台运行的作业的PID进程ID
命令
您是否尝试过htop,有一个选项可以“突出显示程序basename”我想通过使用wmctrl(一种Mozilla Firefox)这样的进程名将java应用程序带到用户面前,但对于java应用程序,wmctrl不起作用。我们可以通过使用进程id而不是进程名将java应用程序带到前面吗?我真的不知道,这是文档,但看起来它们只能显示windows的PID列表…我想通过使用wmctrl-一个Mozilla Firefox之类的进程名将java应用程序展示给用户,但是对于java应用程序,wmctrl不起作用。我们可以通过使用进程id而不是进程名称将java应用程序放到前端吗?这与您最初要求的有所不同。尝试一个新问题我想通过使用进程名(如wmctrl-a Mozilla Firefox)将java应用程序带到用户面前,但是对于java应用程序,wmctrl不起作用。我们可以使用进程id而不是进程名来让java应用程序摆到前面吗
java -jar app.jar &; echo $!