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
правда я сам полный нуб
цитата
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
оценил
цитата
19/08/10 в 16:24
axelded
killall -9 java
цитата
19/08/10 в 16:28
Heavy
о, я тоже вклинбсь в тему
а если при запуске процесса порождается их два (бывает на некоторых сервах при запуске php -q ... ) как правило имеют ид последовательные (если никто не успеет вклинится между). как такое правильно прибивать не руками? т.к. руками правильно прибить второй процесс - тогда и первый отцепится.
цитата
19/08/10 в 23:58
Dr.Syshalt
Heavy:
такие вещи правильно делаются через идентификаторы групп процессов.
Код:
ps -C php -o pgid= | sort | uniq | xargs kill -TERM
выбираем ID групп процессов, совпадающих с данным паттерном ("php"), сортируем и пропускаем через uniq, чтобы получить список id групп процессов, шлем им нужный сигнал.
Новая тема
Ответить
Эта страница в полной версии