Я использую команду Runtime.getRuntime().exec
для выполнения команды tail -f filename | grep str
, которая основана на трубе OS. Мне удалось достичь своей бизнес-логики. Но все-таки есть проблема, которую я должен решить: При использовании трубы, процесс для другого процесса для команды хвоста:Как уничтожить подпроцесс Java-процесса
$ ps -ef | grep test.log
admin 6953 32721 0 16:32 ? 00:00:00 /bin/sh -c tail -f /home/admin
/test.log | unbuffer -p grep '1444379575648'
admin 6957 6953 0 16:32 ? 00:00:00 tail -f /home/admin/test.log
Process.destroy()
метод уничтожает себя (PID: 6953) only.How я могу уничтожить его subprocess(pid:6957)
в моей программе Java?
Это хорошее предложение, но может ли оно отрицательно повлиять на производительность процесса? –
Производительность должна учитываться только после функциональности: если вам нужен PID процесса, и вы не можете его получить, ваша производительность бесконечно плоха в том, что она не делает правильные вещи. –
Вы имеете в виду, что нет способа получить pid процесса? –