Найти тему

Astra Linux. Как убить процесс. Bash скрипт.

В процессе разработки бывает так, что сотрудникам необходимо прекратить работу Вашей самодельной программы, которая стартует в автозапуске (например). Чтобы не делать лишних движений персоналу - я написал скрипт, который запускается и убивает процесс.

Главные моменты отмечу:

Найти значения 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