因為專案的問題,時不時會出現多個超時執行程序,影響系統執行。
寫了乙個殺程序的指令碼,然後定時去執行它。
1 編寫殺程序的指令碼 /root/kill_service.sh
#!/usr/bin/bash
# 檢查tesseract 程序,如果超過30秒,就把它kill掉
# 該程式需要寫入定時任務(每10分鐘執行一次)
# 每隔10分鐘執行一次
# */10 * * * * sh /root/kill_service.sh
# 需要監控的程序名稱(例如tesseract)
pro_name=tesseract
# 程序歸屬的使用者
username=root
# 超時時間30秒(假定認為該程序超過30秒,就認為該程序超時,需要kill掉)
interval=30
ps -eo pid,user,etime,cmd | grep $ |grep -v grep | awk '' | while read line
do #獲取程序pid
pid=`echo $line | awk ''`
#獲取程式執行時間,
miao=`echo $line | awk -f: ''`
fen=`echo $line | awk -f: '' | awk -f' ' ''`
let "second=miao+fen*60"
#判斷程序執行的時間是否超過指定週期$interval
if [ $second -ge $interval ];then
echo "555 $line kill $elapsed second $etime ssss"
# 殺死該程序
kill -9 $pid
fidone
2. 設定時任務,定時執行上面的指令碼
切換到root 使用者下執行
#檢視定時任務
crontab -l
#編輯定時任務
vim /etc/crontab
shell=/bin/bash
path=/sbin:/bin:/usr/sbin:/usr/bin
mailto=root
# 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
#每隔2分鐘執行一次
*/2 * * * * sh /root/kill_service.sh &>> /root/log/kill_service.log
# 啟動定時任務
crontab /etc/crontab
linux使用指令碼殺死指定名稱的程序
如題,linux下要殺死程序首先是ps ef列出程序,得到程序pid 然後kill 9 程序號 殺死指定程序 這裡我不說使用killall pkill殺死程序,因為我的是乙個嵌入裝置,不支援這些命令 網上看到的查詢程序的後面都是使用awk的,不巧的是這個裝置也不支援awk 本來想使用那個指令碼來殺死...
linux使用指令碼殺死指定名稱的程序
如題,linux下要殺死程序首先是ps ef列出程序,得到程序pid 然後kill 9 程序號 殺死指定程序 這裡我不說使用killall pkill殺死程序,因為我的是乙個嵌入裝置,不支援這些命令 網上看到的查詢程序的後面都是使用awk的,不巧的是這個裝置也不支援awk 本來想使用那個指令碼來殺死...
小TIPS 殺掉指定名稱的程序
要殺某個指定名稱的程序,用到getprocesses方法以及kill方法,這點用在殺掉比如vba程式設計中的象word,excel等程序裡是很有效果的 sub processkill byval processname as string dim pprocess as process pproce...