Автоматически остановить php процесс запущенный дольше часа

Bash скрипт для завершения php процессов, которые зависли или не завершились. В данном случае мы их будем искать и завершать, если они длятся более одного часа.
Данный скрипт был взят на просторах Интернета, автора и источник вы можете посмотреть здесь:
Ссылка - https://stackoverflow.com/a/12765886

Создание файла и код скрипта

Создадим файл скрипта, с названием php_pkill.sh, через любой текстовый редактор и положим его например в /root/.
После дадим права на выполнение данного скрипта:

chmod +x /root/php_pkill.sh

Записываем в нашем файле код скрипта:

#!/bin/bash
for i in $(pidof php); do
    pidtime=$(stat -c '%Y' /proc/$i)
    now=$(date +%s)
    ((now - pidtime >= 3600)) && { kill $i; sleep 1; kill &>/dev/null -9 $i; }
done

Запуск скрипта по расписанию

Далее поставим наш скрипт на запуск по расписанию с помощью crontab. Редактируем или создаём файл crontab, и создаём следующую задачу:

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  user-name command to be executed

#Check & kill php proc older then 1 hours
 */30  *  *  *  * /root/php_pkill.sh

После редактирования сохраняем, можно также сразу вывести список задач с помощью команды crontab -l и убедиться что мы всё верно сохранили.

Таким образом наш скрипт будет запускаться каждые 30 минут. Проверять, есть ли среди запущенных php процессов, которые выполняются более одного часа и если такие есть, то выполнять команду “kill” для данных процессов, по их pid.