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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

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

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

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
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?
Или есть правильное решение, а не мои варианты? ;)

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

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

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

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

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #2 : 23 Апреля 2018, 12:32:19 »
kofesutra,
Код: (bash) [Выделить]
kill -9 $(ps aux | grep <program> | grep -v grep | awk '{print $2}')
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6739
  • 20% Cooler
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #3 : 23 Апреля 2018, 12:38:18 »
EvangelionDeath,
(Нажмите, чтобы показать/скрыть)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: BASH: контроль killall
« Ответ #4 : 23 Апреля 2018, 12:51:23 »
ALiEN175, то я знаю... Но если человеку надо гарантированое прибитие процесса, то других вариантов вроди как и нету
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
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 »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6739
  • 20% Cooler
    • Просмотр профиля
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 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн kofesutra

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

 

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