2010-12-31 1 views
1

Я новичок в сценариях оболочки. Мне нужно написать скрипт, который выполняет эту команду, чтобы получить идентификатор процесса для задач ...Ubuntu shell scripting

ps aux | grep java | grep dbConvert2 | awk '{print $2}' 

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

Я знаю, что могу убить -9, я просто не знаю, как динамически захватить все PID-и хранить их как переменные

+0

Вы действительно должны принять больше ответов на свои вопросы. 27% могут отпугнуть людей. – plundra

+0

Не используйте kill -9 для первой команды, которую вы всегда запускаете, в общем. Просто используйте kill и дайте программе очистить себя. Если kill не работает, вернитесь, чтобы убить -9. Это как когда вы заходите в магазин, чтобы что-то вернуть, вы не начинаете кричать на клерка немедленно; сначала попробуйте быть приятным, а затем начните кричать и махать руками только после того, как они игнорируют вас. :) – dannysauer

ответ

2

Append | xargs kill -9 к текущей команде

[править] если вы хотите выполнять некоторые операции на каждого идентификатора, вы можете использовать цикл, что-то вроде:

for my_pid in `YOUR_CMD`; do 
    <some stuff with $my_pid> 
    kill -9 $my_pid 
done 
0
pkill -9 'java.*dbConvert2' 

Вы можете использовать pgrep 'pattern' попробовать различные модели раньше.

Edit: Если процесс не соответствует, возможно, придется использовать -f (относится как к pgrep и pkill, используйте после от -9, хотя) для поиска всей команды, включая аргументы.
Пример: pkill -9 -f 'java.*dbConvert2'

+0

Я не уверен, но доступен ли «pgrep» с базовой установкой? –

+0

Да, это требуется в 'procps'. (/ bin/kill находится в * том же * пакете) – plundra