уничтожение процессов автоматически

Править: Кажется, что моему пониманию прочитанного повреждают, я не думаю, что это поможет с аспектом X11, извините.

Если Ваша система использует пополудни-utils пакет для сна/следа, можно вставить сценарий
/etc/pm/sleep.d/

Вот сценарий, который я использую для присоединения моей мыши с последовательным подключением после того, как будьте в спящем режиме:

#!/bin/sh

# Action script to ensure that serial mouse works
# after a hibernate/suspend
#
# Copyright: Copyright (c) 2009 Michael Vogt
# License:   GPL-2
#

PATH=/sbin:/usr/sbin:/bin:/usr/bin

SELF=attach-serial-mouse
COMMAND=
IFPLUGD_IFACE=

# pm-action(8) - <action> <suspend method>
#

case "${1}" in
        hibernate)
        # nothing
                ;;
        resume|thaw)
        inputattach --daemon -ms3 /dev/ttyS0
                ;;
esac

Я сохранил это как 00_attach_serial_mouse.

5
21.02.2018, 04:36
3 ответа

Конечно, один лайнер, который Вы записали, не будет работать, так как 1$ в кавычках. Попробуйте это:

ps| gawk '{ if ($4 != "COMMAND" && $4 != "sh" && $4 != "ps") system("kill -KILL "$1) }'

Весело проведите время, но используйте его с осторожностью. Мне обычно не нравятся системные команды в простофиле, конечно, не команда "уничтожения".

5
27.01.2020, 20:38
  • 1
    Можем мы делать это без системных команд. Как? –  munish 12.01.2012, 08:57
  • 2
    Здесь его Unix HP и нет никакой простофили в HP unix –  munish 12.01.2012, 09:09
  • 3
    , Вам будет нужна системная команда, но мне не нравятся команды, любят, уничтожают в простофиле. Я думаю до и если это не абсолютно необходимо, выполнитесь, уничтожают вручную. замена –  Aditya Patawari 12.01.2012, 09:11
  • 4
    таращит глаза awk. Это не создаст различия в этом случае. Команда станет ps| awk '{ if ($4 != "COMMAND" && $4 != "sh" && $4 != "ps") system("kill -KILL "$1) }' –  Aditya Patawari 12.01.2012, 09:14

Если необходимо сделать этот вид вещи часто, установите proctools.

pkill -v -KILL ps

уничтожает все, что не является PS.

0
27.01.2020, 20:38

Вместо того, чтобы анализировать вывод ps, настройте его к своей симпатии.

Если psфильтрующих опций достаточно, чтобы заставить его показать точно набор процессов, которые Вы хотите уничтожить, затем указать -o pid= только показать столбец PID, без строки заголовка.

ps … -o pid=
 1234
56789

Так как вывод содержит только цифры и пробел, можно использовать его непосредственно в замене команды:

kill $(ps … -o pid=)

При необходимости в последующей обработке использовать -o выбрать столбцы и приказать, чтобы Вы хотели. Посмотрите ps руководство по Вашей системе для поддерживаемых имен столбцов; POSIX указывает некоторых. Добавьте a = после каждого столбца для подавления строки заголовка.

kill $(p=$(sh -c 'echo $PPID');
       ps -o pid= -o ppid= -o tty= -o comm= |
       awk -v "tty=${TTY#/dev/}" -v o=$$ -v p=$p '
           $1 != o && $1 != p && $2 != p && $3 == tty && $4 != "sh" {print $1}
       ')
2
27.01.2020, 20:38

Теги

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