Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ubuntu中为java应用程序命名进程_Java_Ubuntu - Fatal编程技术网

如何在ubuntu中为java应用程序命名进程

如何在ubuntu中为java应用程序命名进程,java,ubuntu,Java,Ubuntu,我在ubuntu中运行了两个java应用程序,我在谷歌上搜索了一下,但是我不知道如何给每个java应用程序指定唯一的进程名。我以jar文件java-jar app.jar的形式运行这些应用程序。但是当我看到使用shell命令top的进程时 它只显示java,而不显示应用程序名称。有关这方面的任何帮助。您可以在终端上尝试ps-aef | grep java。 它将列出正在运行的Java命令,您可以通过查看命令参数从中推断出应用程序名称。如果要启动/停止Java进程,您可以执行如下启动脚本: #!/

我在ubuntu中运行了两个java应用程序,我在谷歌上搜索了一下,但是我不知道如何给每个java应用程序指定唯一的进程名。我以jar文件java-jar app.jar的形式运行这些应用程序。但是当我看到使用shell命令top的进程时

它只显示java,而不显示应用程序名称。有关这方面的任何帮助。

您可以在终端上尝试ps-aef | grep 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 $!