Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: BASH: контроль killall  (Прочитано 353 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 308
    • Просмотр профиля
BASH: контроль killall
« : 23 Апрель 2018, 11:45:00 »
Здравствуйте все!
Такое дело: в скрипте использую
killall $program_nameЗатем снова вызов той же программы.
Но иногда не все процессы убиваются, вероятно не успевают помереть? :)
Подскажите, камрады, как сделать гарантированное срабатывание killall?
killall $program_name
sleep 10s
или
killall $program_name &&
sleep 10s
или
killall $program_name
wait
или уж совсем тупо
killall $program_name
sleep 10s
killall $program_name
или поставить в цикл while do?
Или есть правильное решение, а не мои варианты? ;)

Оффлайн Ввысь

  • Активист
  • *
  • Сообщений: 376
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #1 : 23 Апрель 2018, 11:53:19 »
kofesutra, у меня так

#!/bin/bash
killall a.out
sleep 5
/home/fikus/a.out &

вроде работает )

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #2 : 23 Апрель 2018, 12:32:19 »
kofesutra,
Код: Bash
  1. kill -9 $(ps aux | grep <program> | grep -v grep | awk '{print $2}')
  2.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4261
  • Capture the truth
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #3 : 23 Апрель 2018, 12:38:18 »
EvangelionDeath,
(Нажмите, чтобы показать/скрыть)
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3276
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #4 : 23 Апрель 2018, 12:51:23 »
ALiEN175, то я знаю... Но если человеку надо гарантированое прибитие процесса, то других вариантов вроди как и нету
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 308
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #5 : 23 Апрель 2018, 14:03:22 »
EvangelionDeath, ох, ёлки! Я аж в ступор впал ;)
Но если человеку надо гарантированое прибитие процесса
Про kill -9 : если его не рекомендуется использовать, то и я не буду :)

По сути, процессы нормально убиваются killall-ом, но негарантировано  в течение заданного промежутка времени.
Поэтому хотелось бы получить какой-то намёк от killall, что, дескать, "я всё закончил" и только потом запускать процесс заново.

Пользователь добавил сообщение 23 Апрель 2018, 14:05:04:
Ввысь, да, это простейший вариант, но иногда убитие затягивается. Приходится увеличивать sleep :(
« Последнее редактирование: 23 Апрель 2018, 14:05:04 от kofesutra »

Оффлайн ALiEN175

  • Модератор форума
  • Старожил
  • *
  • Сообщений: 4261
  • Capture the truth
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #6 : 23 Апрель 2018, 14:09:23 »
гарантированное "прибитие" без -KILL
while pgrep command; do
    killall command
    sleep 1
done

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 23 Апрель 2018, 14:12:04 от ALiEN175 »
ASUS P5K-C :: Intel Xeon E5450 :: 8 GB RAM :: Nvidia 8500GT :: XFCE
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA3150 :: XFCE

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 308
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #7 : 23 Апрель 2018, 14:13:46 »
ALiEN175, спасибо, я тоже сюда склонялся ;)
Значицца, так и сделаю, благодарю!

 

Страница сгенерирована за 0.122 секунд. Запросов: 22.