如何在ubuntu中为java应用程序提供进程名称

时间:2013-04-05 13:00:23

标签: java ubuntu

我正在java中运行两个ubuntu应用程序,我搜索了这个,但我没有得到如何为每个java应用程序提供唯一的进程名称。我正在运行应用程序作为jar文件(java -jar app.jar)。但是当我看到使用shell命令顶部的过程时。

它只显示java,而不是应用程序名称。对此有任何帮助。

3 个答案:

答案 0 :(得分:0)

您可以在终端上试用ps -aef | grep java。 它将列出正在运行的Java命令,您可以通过查看命令参数来从中推断应用程序名称。

答案 1 :(得分:0)

如果要启动/停止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

答案 2 :(得分:0)

解决方案

如果您在后台运行命令(最后添加&),您可以获得使用$!的PID:

  

上次作业的PID(进程ID)在后台运行

命令

java -jar app.jar &; echo $!
相关问题