Есть ли форк или простой мод команды linux kill чтобы обеспечить обратную связь? Я хотел бы избежать цикла:

ps acx | grep rogue_agents
killall rogue_agents # alternately, kill 007
ps acx | grep rogue_agents # did it work?

Было бы неплохо, если бы после некоторого периода времени его повысили до kill -9 .

1 ответ1

3

Вы можете использовать -w с killall для этого:

   -w, --wait
          Wait  for  all  killed  processes to die. killall checks 
          once per second if any of the killed processes still exist
          and only returns if none are left.  Note that killall may
          wait forever if  the  signal  was ignored, had no effect,
          or if the process stays in zombie state.

Так что killall -w rogue_agents будет достаточно.


Изменить: Для дополнительного вопроса бонуса в вашем редактировании ...
(об обновлении до kill -9 после определенного периода времени) Вы можете попробовать следующее:
(Я не могу попробовать это сам в данный момент, потому что у меня нет мошеннических процессов :)

timeout 8 killall -w rogue_agents
timeout 8 killall -9 -w rogue_agents

Это сделает killall с ожиданием. timeout 8 заставляет его ждать только 8 секунд, после чего вы можете выполнить killall -9 . Я также заставил это ждать 8 секунд. Если killall -9 не будет выполнен через 8 секунд, то действительно что-то не так, и это потребует ручного исследования.

Конечно, вы можете встроить тест, чтобы выполнить вторую строку, только если после первоначального killall после 8 секунд все еще присутствуют rogue_agents. И эхо с ошибкой, если процесс все еще активен после второго killall -9 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .