Убить подпроцесс в Ubuntu НЕ родительский?

Я хочу убить процесс в Ubuntu.

У меня установлена ​​Java и работает JBOSS & amp; Tomcat на фоне. Мне нужно убить Tomcat после развертывания, но когда я убью его, JBOSS тоже собирается.

Я должен был использовать

kill -9 pidofjava
killall tomcat

Но статус все еще тот же.

Что мне нужно сделать, чтобы убить атрибут процесса? Я имею в виду подпроцесс?

1
задан 10 November 2011 в 22:19

2 ответа

Вы можете просмотреть список процессов, идентифицируя детей с одним и тем же родителем и убивая их одного за другим.

Атрибуция: http://www.unix.com/17901-post4.html

#!/bin/sh
while true
do
  echo "Enter parent process id  [type quit for exit]"
  read ppid

  if [ $ppid -eq "quit" -o $ppid -eq "QUIT" ];then
     exit 0
  fi

  for i in `ps -ef| awk '$3 == '$ppid' { print $2 }'`
  do
      echo killing $i
      kill $i
  done
done

Вы также можете убить по идентификатору сеанса, но этот родительский объект получит и дети.

https://serverfault.com/questions/40303/how-do-you-kill-a-process-tree-in-linux

ps -eo pid,ppid,sess,cmd -u ppetraki | grep whoami

pkill -9 -s SESS_ID

Используя информацию из более поздней, вы можете создать более простой инструмент, ориентированный только на детей.

0
ответ дан 10 November 2011 в 22:19

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

0
ответ дан 10 November 2011 в 22:19

Другие вопросы по тегам:

Похожие вопросы: