【发布时间】:2017-03-09 22:01:45
【问题描述】:
我正在构建的脚本需要检查是否有更多进程 (pid) 正在运行同一进程。如果进程两次运行,我们需要终止该进程。
这是一个示例,由于某种原因,此过程将运行两次。所以我们需要监控这个并且需要杀死/重启单声道进程。
#!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
set -x # set debug
PID="/usr/local/bin/Serverd.pid"
Service="/etc/init.d/serverd" $1
#
# Functions
#
die (){
printf '%s\n' "$*" >&2
exit 1
}
log(){
logger -t HealthCheck -i $*
}
process () {
[[ $(pidof mono /dev/null 2>&1) == '' ]] && echo 0 || echo 1
}
pid () {
[[ ! -r $PID ]] && echo 0 || echo 1
}
for i in $(process); do
if [[ $i -eq '0' ]]
then
echo 'Process is Stoped!!!!!'
if [[ $(pid) -eq '1' ]]
then
echo PID still there, remove PID first
rm -rf $PID
$Service start
exit 1
else
$Service start
exit 1
fi
else
echo 'Process is Running!!!!'
exit 1
fi
done
如果我有 2 个同一个单声道进程的 PID,则需要将其杀死
+++ pidof mono /dev/null
++ [[ 30454 30014 == '' ]]
我是怎么做到的?
【问题讨论】: