У меня есть приложение Java, работающее на сервере linux. Когда он был запущен, он записывал идентификатор процесса в «pidfile».Есть ли способ закрыть приложение Java по идентификатору процесса?
Когда я закрываю, я просто прочитал ИДП из этого файла, и убить его:
kill -9 12345
Но другие люди говорят, что это не безопасно, вместо этого, они предлагают мне встроить небольшой сервер HTTP, и обеспечить HTTP API для закрытия, такие как:
http://localhost:8080/close
Когда я хочу, чтобы закрыть его, мне нужно посетить:
curl http://localhost:8080/close
Это работает, но очень скучно, я по-прежнему предпочитаю путь к процессу. Есть ли способ использовать идентификатор процесса для безопасного закрытия приложения?
Update:
«Безопасно» здесь я имею в виду, я могу отменить некоторые запущенные задачи, которые могут писать файлы на диск и закрыть некоторые ресурсы перед выходом.
Зависит от того, что вы подразумеваете под безопасностью? Я думаю, что «люди» говорят, что позволить процессу Java очищать и закрывать ресурсы, но если это не относится к вам, тогда не беспокойтесь (хотя «kill -HUP» может быть немного приятнее ...) –
@ AndersR.Bystrup Спасибо, я только что обновил свой вопрос – Freewind