Передайте команду bash комментарий, чтобы увидеть от pkill

У меня запускается команда aribtrary bash, к которой я хочу прикрепить какой-то идентифицирующий комментарий, чтобы я мог при необходимости убить его.

Например:

sleep 1000 #uniqueHash93581
pkill -f '#uniqueHash93581'

... но #uniqueHash93581 не интерпретируется, поэтому pkill не найдет процесс.

Любой способ передать этот уникальный хэш, чтобы я мог pkill процесс?

2 ответа

Решение

Bash удаляет комментарии перед запуском команд.


Обходной путь с Linux и GNU grep:

Префикс вашей команды с переменной с уникальным значением

ID=uniqueHash93581 sleep 1000

Позже ищите эту переменную, чтобы получить PID и завершить процесс

grep -sa ID=uniqueHash93581 /proc/*/environ | cut -d '/' -f 3 | xargs kill

exec команда в подоболочке и использовать -a возможность дать ему узнаваемое имя. Например:

$ (exec -a foobar sleep 1000) &
$ ps | grep foobar
893 ttys000    0:00.00 foobar 10

Или просто запустите задание в фоновом режиме и сохраните его PID.

$ sleep 1000 & pid=$!
$ kill "$pid"
Другие вопросы по тегам