Передайте команду 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"