Как выйти из системы от преследуемого корня в определенное время

pacman -Qt пакеты печати, чьи не нуждается в системе (возможно, Вам нужна она). Я надеюсь, что не неправильно понял Вас.

0
29.11.2013, 10:23
5 ответов

Для уничтожения всех процессов удара, принадлежа корню, я использовал следующий сценарий:

for pid in $(pgrep -u 0 bash); do
    if [ "$pid" != "$$" ]; then
        kill -HUP "$pid";
    fi
done
0
28.01.2020, 02:28

pkill -u 0 su alls все su процессы, работающие как корень (который в свою очередь уничтожает их дочерние оболочки).

Если Вы только хотите уничтожить процессы удара, работающие под su:

for pid in $(pgrep -u 0 bash); do
  parent_pid=$(ps -o ppid= -p "$pid")
  parent_command=$(ps -o comm= -p "$parent")
  if [ "$parent_command" = "su" ]; then kill -HUP "$parent_pid"; fi
done

Однако это - вероятно, плохая идея. Что, если та оболочка Вы уничтожаете, делает что-то важное?

Если Вы хотите уничтожить оболочки, которые остаются необслуживаемыми слишком долго, устанавливают TMOUT переменная в .bashrc. Например, с TMOUT=600, колотите автоматически выходит, если это не видит входа в течение 10 минут.

Действительно думайте тщательно о том, чего Вы пытаетесь достигнуть. Существует хороший шанс, что уничтожение оболочек не решит любую проблему, которую Вы пытаетесь решить.

2
28.01.2020, 02:28

Как другие состояния, это не должно быть необходимо. Необходимо видеть сначала, почему существуют многие su процессы actives.

С другой стороны, для уничтожения всех тех процессов, например, в соответствии с Linux Вы могли использовать:

ps aux | awk '/su( -)?$/ {print $2}' | xargs sudo kill
1
28.01.2020, 02:28

Если Вы не заботитесь об уничтожении другого su процессы (su -u username) простой подход будет

   echo "killall su" | at 1145 jan 31

Если Вы заботитесь, используйте решение Emy, подавая его к "в" в течение "определенного времени" или добавления его к crontab для периодических вызовов.

Обратите внимание, что самоуверенные пользователи преодолеют фильтр Emy с su -u root и выслеживание их будет трудно как su выбирает довольно много вариантов, которые могли одурачить regexp. killall является более надежным, но может вызвать сопутствующий ущерб, как описано выше.

0
28.01.2020, 02:28

pkill (и возможно его компаньон pgrep) должен работать приятно, если действительно действительно необходимо сделать это.

Что-то как pkill su отправит сигнал уничтожения во все su процессы. Также посмотрите на их --full параметр; см. страницу справочника для деталей.

Достигнуть "в определенное время", очевидное решение состоит в том, чтобы использовать at, который специально предназначен для выполнения данной команды в установленный срок и только затем (в противоположность крону, который выполняет запланированные команды неоднократно, когда системное время соответствует некоторым данным критериям).

Соединяя их, Вы получаете что-то как echo pkill su | at 17:30. Обратите внимание что at должен будет быть выполнен как корень.

0
28.01.2020, 02:28

Теги

Похожие вопросы