В настоящее время я создаю приложение в JAVA, где может быть только одно исполнение. Поэтому в настоящее время я использую файл блокировки, в котором я пишу PID текущего исполнения.Проверьте, выполняется ли процесс с использованием его PID в JAVA.
Итак, всякий раз, когда это приложение запустится, он откроет файл (если он существует) и попытается определить, действительно ли PID, записанный в файле, запущен.
Это предотвращает проблему, когда мое приложение падает до разблокировки файла.
Мне нужно, чтобы это работало как на окнах (XP, 7 или 8), так и на Linux (все пользователи находятся на дистрибутивах на основе debian).
Вот код, чтобы дать вам более полную картину того, что я хочу сделать:
//get the PID from the file
int pidValue = new FileReader(file).read();
//get the OS type
String os = System.getProperty("os.name").toLowerCase();
//Check PID depending of OS type
if(os.contains("nux") || os.contains("nix")){
/*
* Check PID on Linux/Unix
*/
} else if (os.contains("win")) {
/*
* Check PID on Windows
*/
}
Я пытался найти документацию по этому вопросу, но мне не удалось найти ничего полезного пока.
спасибо.
Вы можете выполнить процесс с 'ps' для linux и' tasklist' для окон и проверить вывод для PID. – PeterMmm
Эти функции возвращают какой-то ответ? Мне нужно программно определить, работает ли процесс. – ElCapitaine
http://stackoverflow.com/questions/54686/how-to-get-a-list-of-current-open-windows-process-with-java – PeterMmm