使用命名的PID启动Java程序
我想在solaris框中使用命名的PID进程id启动java程序。 在启动为我的程序生成的任何PID时,我希望它预先添加一个字符串,以便以后我可以识别这个特定的程序并关闭它使用命名的PID启动Java程序,java,solaris,startup,Java,Solaris,Startup,我想在solaris框中使用命名的PID进程id启动java程序。 在启动为我的程序生成的任何PID时,我希望它预先添加一个字符串,以便以后我可以识别这个特定的程序并关闭它 e、 g.如果生成的PID为1234,我想将其创建为EventListener\u PID\u 1234您可以搜索tasklist.exe以找到您的程序名,然后获取程序名的PID,然后您可以很容易地终止它。这里是一个查找与chrome browser相关的所有进程的示例 public static void main(S
e、 g.如果生成的PID为1234,我想将其创建为EventListener\u PID\u 1234您可以搜索tasklist.exe以找到您的程序名,然后获取程序名的PID,然后您可以很容易地终止它。这里是一个查找与chrome browser相关的所有进程的示例
public static void main(String[] args){
// TODO code application logic here
try {
String processrow;
Process p = Runtime.getRuntime().exec(System.getenv("windir")+"\\system32\\"+"tasklist.exe");
BufferedReader input =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String[] process;
while ((processrow = input.readLine()) != null) {
//System.out.println(processrow); to display all tasklist.exe processes table
process = processrow.split("\\s+");
if(process[0].equalsIgnoreCase("chrome.exe")) // index 0 hold the program name
{
System.out.println(process[1]); // index 1 hold the program PID assign by theOS
}
}
input.close();
// your process killing code gose here
} catch (Exception err) {
err.printStackTrace();
}
}
PID是一个数字而不是字符串,您无法更改它。如果您想找到PID,请使用jps-LVMPID是由操作系统设置的,Java也无法控制它,我想要实现的是用特定的东西标记我的进程,这样以后我就可以从运行在同一个盒子上的许多其他java进程中识别出该进程来终止它。我不想运行另一个java程序来终止我的特定进程。应该有一些unix命令,使用它我应该能够知道刚刚启动的java pragram的PID,并将其保存在某个地方,以便稍后我可以接收该PID并杀死它。