Есть ли способ остановить явское управление программы, используя скрипт оболочки, зная одно только имя. Я применяю раковину ksh
Добавьте уникальное свойство JVM, чтобы легко идентифицировать его, например, Для Test.Class
java -Duniquename=1 test
убить его:
ps ax | grep uniquename | grep -v grep | awk '{print $1}' | xargs kill
Под давлением Mnementh 'Seartion :
Это должно сделать работу
jps -l | grep org.example.MyMain | cut -d ' ' -f 1 | xargs -rn1 kill
JPS -L
: список Java-процесса с помощью «полного имени пакета для основного класса приложения или полной Имя пути к файлу JAR приложения. «
GREP
: Выберите процесс, который вам нравится
Cut -D - '-F 1
: разделить вывод в столбцы, используя только разделитель' 'и печатать только Первый (PID)
KARGS -RN1 Убить
: Выполните убить для каждого PID (если есть)
Обратите внимание, что вы должны запускать jps и xargs с тем же пользователем (или root), как вы Запуск процесса
Вы можете использовать JPS, идентифицирующие идентификацию процесса, связанного с именем начальной Java-программы (JPS - это процесс-менеджер для Java-программ). С помощью этого идентификатора вы можете нормально убить процесс.
Вы можете использовать PKILL:
pkill your_java_program_name
Это будет работать, если запустите только один экземпляр вашей программы.
Вы можете использовать опцию PS, чтобы отформатировать свой вывод,
ps -eo cmd,pid | awk '!/awk/&&/mycommand/{cmd="kill -9 "$2;system(cmd)}'