В процессе разработки бывает так, что сотрудникам необходимо прекратить работу Вашей самодельной программы, которая стартует в автозапуске (например). Чтобы не делать лишних движений персоналу - я написал скрипт, который запускается и убивает процесс.
Главные моменты отмечу:
Найти значения pid процессов с названием программы ("your_program"):
pgrep your_program -l
Получите список всех процессов, в которых содержится словосочетание your_program.
Если необходимо конкретно только точное совпадение:
pgrep '^your_program$' -l
pgrep - возвращает номер pid процесса.
Исходя из этого напишем скрипт kill_your_program.sh:
#!/bin/bash
#Если вы хотите сопоставлять только процессы, имена которых точно соответствуют шаблону поиска, вы должны использовать: pgrep '^your_program$'
process_name="^your_program$"
# pids - это массив с номерами pid
pids=($(pgrep "$process_name"))
# echo ${pids[@]}
# если количество процессов больше нуля
if [[ ${#pids[@]} -gt 0 ]]; then
echo "Найдено ${#pids[@]} процесса(-ов) с именем $process_name:"
for pid in "${pids[@]}"; do
echo "PID процесса: $pid"
kill -9 $pid
done
else
echo "Процесс $process_name не найден."
fi
Не забыть назначить права на исполнение:
sudo chmod 777 ./kill_your_program.sh