Править: Кажется, что моему пониманию прочитанного повреждают, я не думаю, что это поможет с аспектом 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.
Конечно, один лайнер, который Вы записали, не будет работать, так как 1$ в кавычках. Попробуйте это:
ps| gawk '{ if ($4 != "COMMAND" && $4 != "sh" && $4 != "ps") system("kill -KILL "$1) }'
Весело проведите время, но используйте его с осторожностью. Мне обычно не нравятся системные команды в простофиле, конечно, не команда "уничтожения".
Если необходимо сделать этот вид вещи часто, установите proctools.
pkill -v -KILL ps
уничтожает все, что не является PS.
Вместо того, чтобы анализировать вывод 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}
')
ps| awk '{ if ($4 != "COMMAND" && $4 != "sh" && $4 != "ps") system("kill -KILL "$1) }'
– Aditya Patawari 12.01.2012, 09:14