Как убить все процессы, кроме определенного

Предполагая, что группа, установленная для файлов, имеет соответствующие разрешения, вы должны просто узнать ее идентификатор группы (GID) и добавить себя к ней.

Найти из идентификатора группы файла, используйте ls -n. Пример вывода:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

Вы хотите четвертое поле для GID, которое в моем случае является вторым 1000.

sudo addgroup --gid GID foobar; sudo usermod `whoami` -aG foobar

После запуска вы должны иметь полный

Как указано в другом ответе, касающемся прав пользователя, если вам нужно исправить группу в некоторых файлах, выполните одно из следующих действий:

[ f3]
sudo chgrp -R  foobar ./
1
задан 25 July 2015 в 00:32

4 ответа

Использование awk

ps ax | awk '/java/ && !/eclipse/ {system("kill "$1)}'

Команда убивает все процессы java, но не процесс eclipse.

12
ответ дан 23 May 2018 в 18:49
  • 1
    Более элегантный (и быстрее), затем ответ от @maythux IMHO ... ; -) – Fabby 24 July 2015 в 14:26
  • 2
    Я согласен с Фабби, хорошо! – kos 24 July 2015 в 15:01

Как насчет:

pgrep -af 'java' | grep -Po '^[^ ]+(?!.*eclipse)' | xargs kill
pgrep -af 'java' ищет java в полной командной строке процессов и отображает их grep -Po '^[^ ]+(?!.*eclipse)', просматривает найденные процессы и получает идентификаторы процесса процессы, которые не имеют eclipse в своих полных командных строках xargs kill, убьют процессы.
1
ответ дан 23 May 2018 в 18:49
  • 1
    +1 для короткого и элегантного решения. Обратите внимание, что было бы возможно иметь еще более эффективное решение (только одно команда: pkill), если pgrep/pkill поддерживается perl regex'es, которое вы используете на втором шаге выше. К сожалению, pgrep / pkill поддерживает только расширенные регулярные выражения (например, egrep/grep -E). – arielf 24 July 2015 в 23:49
  • 2
    @arielf. Вы абсолютно правы. Это было бы наиболее эффективно, если pgrep / pkill поддерживает PCRE .. – heemayl 24 July 2015 в 23:54

jps -m | grep -v eclipse | awk '{print $1}' | xargs -t kill

Используйте jps, чтобы убедиться, что вы ищете только команды java, а не все команды, которые имеют java на своем пути.

0
ответ дан 23 May 2018 в 18:49
[F1]
0
ответ дан 23 May 2018 в 18:49
  • 1
    Было бы лучше объяснить команды, а просто дать криптовальную командную строку. Кроме того, как насчет моей долговременной команды «orkjavagoob.sh» – waltinator 25 July 2015 в 03:55

Другие вопросы по тегам:

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