Ты можешь сделать
ps -U someUserName -o pid,comm | awk '/someProcessName/{print $1}'
(отредактировал мой ответ и взял приведенную выше строку из моего ответа на связанный с вами вопрос) или аналогичный [1], или даже лучше
pgrep -u myuser mybinaryname
чтобы получить идентификатор процесса, или даже проще
pkill -u myuser mybinaryname
напрямую убить процесс.
Проведите несколько тестов, чтобы определить двоичное имя и убедиться, что оно не конфликтует с другими процессами.
( Скорее всего, pgrep
и pkill
уже установлены в вашей системе. В противном случае они (в системах на основе Debian) находятся в пакете procps
).
Обратите внимание, что обычный пользователь, скорее всего, не имеет привилегий для уничтожения процессов других пользователей, поэтому, например, pkill mybinaryname
необходимо запускать с повышенными привилегиями. Это похоже на скрипт, запускаемый пользователем root (так как он удаляет программы), так что это может не быть проблемой.
[1]: awk
выбирает первое непустое поле, свернув начальные пробелы, которые появятся, если pid <10000 (в моей системе, поскольку pidmax равно 32767), что может привести к путанице, например, cut
.