Как убить конкретную команду поиска? [дубликат]

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

Я создал сценарий, который внутри него содержит команду поиска, которая выполняется до 10 минут, прежде чем я запустил ее снова тот же сценарий, ему нужно убить эту команду поиска.

1
задан 13 June 2017 в 18:25

1 ответ

pgrep

Можно использовать pgrep с -a переключатель:

pgrep -a find

это даст Вам полную командную строку, а также идентификатор процесса:

10838 find / -iname png
10839 find / -iname jpg

затем можно решить, является ли это то, Вы хотите уничтожить или нет:

kill 10838

уничтожит png один.

pkill

можно также использовать pkill как это:

pkill -x "find / -iname png"

-x средства: Только соответствуйте процессам чьи имена.

Найдите дочерний процесс:

используйте дерево для нахождения желаемого процесса, скажем, название сценария является "script.sh", который можно использовать pgrep -f script для нахождения его затем передайте вывод pstree для получения списка, он - ребенок, и уничтожьте процесс находки, который является ребенком сценария.

$ pstree -p $(pgrep -f script)
bash(10915)───find(10916)
$ kill 10916
1
ответ дан 7 December 2019 в 15:34

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

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