gpt4 book ai didi

java - 从使用 xvfb-run 启动的 java 子进程获取 pid

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:42:04 27 4
gpt4 key购买 nike

我正在尝试获取使用 xvfb-run 启动的 java 进程的 PID。在没有 xvfb-run 的情况下启动时,我使用 $!获取最后一个后台进程的 PID 但是一旦我使用 xvfb-run 我显然得到了 xvfb-run 的 PID。

代码如下:

#! /bin/bash
logfile=/var/log/SleepTest.log
pidfile=/var/run/SleepTest.pid
command="java -jar /data/test/SleepTest.jar"
( eval exec -c xvfb-run $command < /dev/null >> $logfile 2>&1 ) &
$! > $pidfile

如果我删除倒数第二行中的 xvfb-run 部分,一切正常(除了我没有显示和程序崩溃的部分)。我可能不得不使用“()”和“&”,但我不是专家。

程序 SleepTest.jar 是我编写的一个小程序,因此我不必处理真实的东西。它只睡 2 分钟。

对于那些想知道为什么我使用 xvfb-run 的人来说,这是因为我需要启动的 java 应用程序使用 SWT 而我的服务器上没有显示。

对于那些想知道为什么我需要进程的 pid 的人,这是因为我想创建一个 init.d 文件以便能够启动|停止|状态我的应用程序

那么有没有简单的方法可以获取呢?

最佳答案

使用 xvfb-run 运行整个脚本(例如 xvfb-run name_of_script.sh),然后从您的文件中删除 xvfb-run eval 行。

关于java - 从使用 xvfb-run 启动的 java 子进程获取 pid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094701/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com