Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Помогите с шел плиз
цитата
18/08/10 в 20:13
 Magistrator
вопрос простой, спрашиваю потому как не знаком абсолютно.

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

на данный момент я делаю это ручками

ps ax | grep java (выводит два процесска с java. один из них реально ява другой это выполнение grep)
kill -s KILL 33206 (тут киляем процесс с явой.)

как это все автоматизировать одним скриптом?
с меня рэйтинг.
цитата
18/08/10 в 20:36
 Diablo
script.sh
там :
ps ax | grep java; kill -s KILL 33206

выполнять sh script.sh
правда я сам полный нуб smail101.gif
цитата
18/08/10 в 20:40
 Magistrator
33206 это ид процесса который получен из ps ax | grep java
эта циферька меняется все время.
суть задачи получить эту цифирь из первой комманды и передать ее второй.
при чем первая комманда выводит две строчки.
с номером процесса самой себя
и собственно процесса с явой.
цитата
18/08/10 в 21:48
 andreich
во

kill -s KILL $(ps ax| grep java | grep -v grep | cut -d ' ' -f 1)
цитата
18/08/10 в 22:01
 Magistrator
пишет Illegal variable name.
цитата
18/08/10 в 22:08
 andreich
а если так

kill -s KILL `ps ax| grep java | grep -v grep | cut -d ' ' -f 1`

какой Shell стоит и какая OS (небось FreeBDSB)

или так

тоже попробуй

ps ax| grep java | grep -v grep | cut -d ' ' -f 1|xargs kill -s KILL
цитата
18/08/10 в 22:45
 Magistrator
kill -s KILL `ps ax| grep java | grep -v grep | cut -d ' ' -f 1`

ета сработала.
огромное человеческое спасибо!
цитата
19/08/10 в 11:09
 Dr.Syshalt
Можно было еще проще.

pkill -9 java
цитата
19/08/10 в 11:19
 Magistrator
smail54.gif

оценил
цитата
19/08/10 в 16:24
 axelded
killall -9 java
цитата
19/08/10 в 16:28
 Heavy
о, я тоже вклинбсь в тему icon_mrgreen.gif
а если при запуске процесса порождается их два (бывает на некоторых сервах при запуске php -q ... ) как правило имеют ид последовательные (если никто не успеет вклинится между). как такое правильно прибивать не руками? т.к. руками правильно прибить второй процесс - тогда и первый отцепится.
цитата
19/08/10 в 23:58
 Dr.Syshalt
Heavy: такие вещи правильно делаются через идентификаторы групп процессов.

Код:
ps -C php -o pgid= | sort | uniq | xargs kill -TERM


выбираем ID групп процессов, совпадающих с данным паттерном ("php"), сортируем и пропускаем через uniq, чтобы получить список id групп процессов, шлем им нужный сигнал.


Эта страница в полной версии