Запуск Java-программы с именованным PID

#java #solaris #startup

#java #solaris #запуск

Вопрос:

Я хочу запустить свою java-программу с именованным PID (идентификатором процесса) в моем окне solaris. При запуске любого PID, сгенерированного для моей программы, я хочу, чтобы он добавлял строку, чтобы позже я мог идентифицировать эту конкретную программу и закрыть ее.

например, если сгенерированный PID равен 1234, я хочу создать его как EventListener_PID_1234

Комментарии:

1. PID — это число, а не строка, и вы не можете его изменить. Если вы хотите найти PID, используйте jps -lvm

2. PIDS устанавливаются ОС, Java также не имеет возможности управлять этим.

3. спасибо за комментарий, чего я хочу достичь, так это пометить мой процесс чем-то конкретным, чтобы позже я мог идентифицировать этот процесс среди многих других Java-процессов, запущенных в том же окне, чтобы убить его.

Ответ №1:

вы можете выполнить поиск по tasklist.exe чтобы найти имя вашей программы, а затем получить ее PID, вы можете легко ее отключить, вот пример, чтобы найти все процессы, связанные с браузером Chrome

   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();
}

}
  

Комментарии:

1. Я не хочу запускать другую Java-программу только для того, чтобы убить мой конкретный процесс. Должна быть какая-то команда unix, с помощью которой я мог бы узнать PID моей только что запущенной java-программы и сохранить его где-нибудь, чтобы позже я мог получить этот pid и уничтожить его.