it-swarm.com.ru

Как мне убить этот процесс Tomcat в Терминале?

Используя ps -ef | grep Tomcat я нашел работающий сервер Tomcat. Я попытался kill -9 {id}, но он возвращает «Нет такого процесса». Что я делаю неправильно? 

Вот пример:

Admins-MacBook-Pro:test-parent tom.maxwell$ ps -ef | grep Tomcat
2043706342 39707 39695   0  3:40PM ttys000    0:00.00 grep Tomcat
Admins-MacBook-Pro:test-parent tom.maxwell$ kill -9 39707
-bash: kill: (39707) - No such process
44
Tom Maxwell

Нет необходимости знать pid Tomcat (идентификатор процесса), чтобы убить его. Вы можете использовать следующую команду для уничтожения Tomcat:

pkill -9 -f Tomcat
111
Darshan

ps -ef | grep Tomcat | awk '{print $ 2}' | XARGS убить -9

https://Gist.github.com/nrshrivatsan/1d2ea4fcdcb9d1857076

Часть 1

ps -ef | grep Tomcat => Получить все процессы с помощью Tomcat grep

Часть 2

Как только мы получим детали процесса, мы передадим их во вторую часть сценария.

awk '{print $ 2}' | xargs kill -9 => Получить второй столбец [Идентификатор процесса] и уничтожить их с опцией -9

Надеюсь это поможет.

22
suryakrupa

Tomcat не работает. Ваш поиск показывает вам процесс grep, который ищет Tomcat. Конечно, к тому времени, когда вы увидите этот вывод, grep больше не работает, поэтому pid больше не действителен.

18
Aurand

Как уже отмечали другие, вы видели процесс grep. Если вы хотите ограничить вывод самим Tomcat, у вас есть две альтернативы 

  • обернуть первый искомый символ в классе символов 

    ps -ef | grep '[t]omcat'
    

    Он также ищет Tomcat, но пропускает запись grep [t]omcat, поскольку она не соответствует [t]omcat.

  • использовать пользовательский формат вывода с PS 

    ps -e -o pid,comm | grep Tomcat
    

    Это показывает только pid и имя процесса без аргументов процесса. Итак, grep указан как grep, а не grep Tomcat.

12
Olaf Dietsche

просто введите команду ниже в терминале

ps -ef |grep 'catalina'

скопируйте значение идентификатора процесса, затем введите следующую команду и вставьте идентификатор процесса

 kill -9 processid
11
ASR
ps -ef

перечислит все ваши текущие запущенные процессы

| grep Tomcat

передаст вывод в grep и будет искать экземпляры Tomcat. Поскольку grep сам процесс, он возвращается из вашей команды. Тем не менее, ваш вывод не показывает процессы Tomcat работает.

2
Chris Knight

В Tomcat/bin/catalina.sh

добавьте следующую строку сразу после окончания раздела комментариев:

CATALINA_PID=someFile.txt

затем, чтобы убить работающий экземпляр Tomcat, вы можете использовать:

kill -9 `cat someFile.txt`
1
Shrikar Kulkarni
ps -Af | grep "Tomcat" | grep -v grep | awk '{print$2}' | xargs kill -9
1
Vaibhav

Это сработало для меня:

Шаг 1: эхо ps aux | grep org.Apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'

Приведенная выше команда возвращает «process_id»

Шаг 2: убить -9 process_id
// Этот process_id такой же, как Шаг 1: вывод 

1
jaydip jadhav

Чтобы убить процесс по имени, я использую следующее

ps aux | grep "search-term" | grep -v grep | tr -s " " | cut -d " " -f 2 | xargs kill -9

tr -s " " | cut -d " " -f 2 такой же, как awk '{print $2}'. tr преобразует пространства табуляции в один пробел, а cut снабжается <SPACE> в качестве разделителя, и запрашивается второй столбец. Второй столбец в выводе ps aux - это идентификатор процесса.

0
Prathik Rajendran M

Мне пришлось завершить Java-процесс activeMQ среди многих Java-процессов на сервере, и этот процесс запускается конкретным пользователем (username is activemq) . Поэтому хорошим способом разделения может быть запуск процесса определенным пользователем:

ps -ef | grep "activemq" | awk '{print $2}' | xargs kill -9
0
dobrivoje

как сказал @Aurand, Tomcat не работает. Вы можете использовать

Команда ps -ef |grep Java | grep Tomcat для игнорирования программ ps

работал для меня в файлах сценариев Shell.

0
ccjeaty
kill -9 $(ps -ef | grep 8084 | awk 'NR==2{print $2}')

NR для количества записей во входном файле .awk может найти или заменить текст

0
user8357232