Я пишу некоторый код Java, который должен быть в состоянии написать pid-файл на Unix-подобных и Windows-машинах. На машинах Unix я пишу скрипт оболочки bash, который содержит что-то вроде этого
command 1>/dev/null 2>&1 &
echo $! > pidfile
Выполняет команду, перенаправляет весь вывод в нирвану и переводит команду в фоновый режим (отсоединяет ее от оболочки). Pid-файл содержит идентификатор процесса команды. Позже я могу пойти и прочитать идентификатор процесса из файла. Это все отлично работает.
Теперь на Windows, я думаю, что я должен сделать что-то вроде
start command
и затем как-то эквивалент для пути Unix. Проблема в том, что я не имею никакого контроля, где программа будет использоваться с точки зрения версии Windows или что установлено на машине. У меня также нет доступа к машине с Windows для тестирования, и я не могу найти ничего простого в Интернете. Я знаю, что в powershell есть функция get-process, но я не знаю, будет ли установлен PowerShell на компьютере, поэтому я не могу на это полагаться.
Есть ли какая-нибудь простая команда или синтаксис для командного файла DOS, которая делает то, что мне нужно?