[Shell] 시작한지 1시간 이상 경과한 프로세스 kill 하기
2022.06.16 14:25
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
시작한지 1시간 이상 경과한 프로세스만 골라서 kill -9 명령어를 날려주는 프로세스
ps -ef 명령어의 결과
# ps -ef | grep http
apache 30553 1794 0 13:03 ? 00:00:36 /usr/sbin/httpd -DFOREGROUND
프로세스 시작시간이 13:03 인걸 이용하여 현재 시간과 비교하여 2 만큼 차이가 나면 프로세스는 죽인다.
############ program kill ###############################################################
#!/bin/bash
export LANG=C
TEMP=/root/NAME_OF_PROCESS .tmp
ps -ef | grep NAME_OF_PROCESS | grep -v grep >> ${TEMP}
while read LIST
do
CURRENT_TIME=`date +%H`
PID=`echo ${LIST} | awk {'print $2'}`
PRC_TIME=`echo ${LIST} | awk {'print $5'} | cut -d ":" -f 1`
DIFF_TIME=`expr ${CURRENT_TIME} - ${PRC_TIME}`
echo
if [ ${DIFF_TIME} -gt 1 ];
then
echo ${LIST}
echo "TRUE"
kill -9 ${PID}
else
if [ ${DIFF_TIME} -eq -22 ];
then
echo ${LIST}
echo "TRUE"
kill -9 ${PID}
else
echo ${LIST}
echo "FALSE"
fi
fi
done < ${TEMP}
rm -rf ${TEMP}
############ program kill ###############################################################