передать в kill id процесса (Зная имя процесса передать в kill его id (ptree| grep run.sh| kill -9))
Модераторы: /dev/random, Модераторы разделов
передать в kill id процесса
Стоит задача автоматом передать в kill id процеса.
Допустим крутится основной и дочерний процессы
1111 /run.sh
222 /bin/ars/run.sh
Руками мы можем подставить в kill -9 1111 222
и таким образом убить эти процессы.
Но как это сделать автоматически, зная только имя этого процесса (run.sh)
Из общей кучи процессов мы их можем выбрать с помощью grep (ptree| grep run.sh). Но вот как передать pidы в kill - не знаю.
При этом нужно обязательно убить основной и дочерний процессы.
Допустим крутится основной и дочерний процессы
1111 /run.sh
222 /bin/ars/run.sh
Руками мы можем подставить в kill -9 1111 222
и таким образом убить эти процессы.
Но как это сделать автоматически, зная только имя этого процесса (run.sh)
Из общей кучи процессов мы их можем выбрать с помощью grep (ptree| grep run.sh). Но вот как передать pidы в kill - не знаю.
При этом нужно обязательно убить основной и дочерний процессы.
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: передать в kill id процесса
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: передать в kill id процесса
Shell
#!/bin/sh
pid=`ps ax | grep "run.sh" | awk '{print $1}'`
kill "$pid"
Re: передать в kill id процесса
Код: Выделить всё
pkill run.sh
Re: передать в kill id процесса
Извиняюсь за неточность!
Ситуация такая:
Процессы приложения периодически зависают и их необходимо убивать килом!
Я хочу сделать ярлык, запустив который пользователь убъет процесс, имя процесса будет прописано в ярлыке, пользователь будет тыкать только на ярлык, поэтому ситуация где вручную требуется прописать в киле id или имя процесса не подходит
pid=`ps ax | grep "run.sh" | awk '{print $1}'`
kill "$pid"
Не дал результата - при выполнении выводит в хелп команды ps
Ситуация такая:
Процессы приложения периодически зависают и их необходимо убивать килом!
Я хочу сделать ярлык, запустив который пользователь убъет процесс, имя процесса будет прописано в ярлыке, пользователь будет тыкать только на ярлык, поэтому ситуация где вручную требуется прописать в киле id или имя процесса не подходит
pid=`ps ax | grep "run.sh" | awk '{print $1}'`
kill "$pid"
Не дал результата - при выполнении выводит в хелп команды ps
Re: передать в kill id процесса
pgrep
pidof
pidof
Re: передать в kill id процесса
ptree | grep "run.sh" | awk '{print $1} - получил пиды процессов
но не получилось их убить
pid=`ptree | grep "run.sh" | awk '{print $1}'`
kill "$pid"
но не получилось их убить
pid=`ptree | grep "run.sh" | awk '{print $1}'`
kill "$pid"
Re: передать в kill id процесса
Вот я написала тебе нужный ярлык
В данном случае я убиваю свой терминал. Замени на необходимое приложение
Код: Выделить всё
cat script.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=script
Comment=Несанкционированное убийство
GenericName=
Keywords=zombi
Exec=bash -c "pkill gnome-terminal"
Terminal=false
Type=Application
Icon=/usr/share/pixmaps/faces/dice.jpg
Categories=tools
StartupNotify=false
В данном случае я убиваю свой терминал. Замени на необходимое приложение
Re: передать в kill id процесса
olecya писал(а): ↑05.02.2016 16:47Вот я написала тебе нужный ярлык
Код: Выделить всё
cat script.desktop #!/usr/bin/env xdg-open [Desktop Entry] Name=script Comment=Несанкционированное убийство GenericName= Keywords=zombi Exec=bash -c "pkill gnome-terminal" Terminal=false Type=Application Icon=/usr/share/pixmaps/faces/dice.jpg Categories=tools StartupNotify=false
В данном случае я убиваю свой терминал. Замени на необходимое приложение
Я упустил один момент!
Ярлык будет находится на Виндовой машине (XP)
Но даже если выполнить эту команду (pkill gnome-terminal"), то остановится только родительский процесс, а дочерний остается висеть, а мне необходимо, чтобы оба процесса закончили свое существование
Re: передать в kill id процесса
Поэкспериментируйте с такой строчкой
Должно выводить все дочерние процессы
Код: Выделить всё
ps -ef | grep "$(pgrep gnome-terminal)" | awk '{print $2}'
Должно выводить все дочерние процессы
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: передать в kill id процесса
Люди, пишущие конвейеры типа ps | grep | awk, скажите, где вы этого понабрались? Очень часто вижу, и всякий раз ужасаюсь. Результат ведь совершенно непредсказуем. Пять раз убьёте что надо, на шестой — что не надо.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: передать в kill id процесса
Код: Выделить всё
#!/bin/sh
for pid in $(pgrep --uid=$(id -u) --exact run.sh); do
pkill --parent=$pid
kill $pid
done
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
Re: передать в kill id процесса
Всем спасибо, мне подошел такой способ
kill -9 $(ptree | grep run.sh | awk '{print $1}')
kill -9 $(ptree | grep run.sh | awk '{print $1}')
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: передать в kill id процесса
Tankiro
Прочитайте, пожалуйста, то, что я написал чуть выше. Ваше решение — рулетка. Русская. Замените свой конвейер на pgrep --uid=$(id -u) --exact run.sh. Ну или хотя бы на pgrep --exact run.sh.
Прочитайте, пожалуйста, то, что я написал чуть выше. Ваше решение — рулетка. Русская. Замените свой конвейер на pgrep --uid=$(id -u) --exact run.sh. Ну или хотя бы на pgrep --exact run.sh.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: передать в kill id процесса
эта опция:
-x Only match processes whose name (or command line if -f is specified) exactly match the pattern.
?
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: передать в kill id процесса
Она самая.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |