gpt4 book ai didi

linux - Bash - 检查进程是否正在运行,否则启动它并使用 "switch"大小写发送邮件

转载 作者:太空狗 更新时间:2023-10-29 12:32:45 25 4
gpt4 key购买 nike

所以我有一个小脚本,用于检查进程是否正在运行,如果没有,则启动脚本并向我发送邮件。我写的脚本(and is "inspired" from here)如下:

#!/bin/bash

case "$(pidof webrtc2sip | wc -w)" in

0) echo "Restarting WebRTC2SIP: $(date)" >> /var/log/webrtc2sip.txt
echo "Restarting WebRTC2SIP at $(date)" > test.txt
/opt/webrtc2sip/sbin/webrtc2sip --config=/opt/webrtc2sip/sbin/config.xml &
mail -r webrtc2sip@testserver.net -s "ALERT: webRTC2sip restarted" me@testserver.com < test.txt
;;
1) # all ok
;;
*) echo "Removed multiple WebRTC2SIP: $(date)" >> /var/log/webrtc2sip.txt
echo "Removed multiple WebRTC2SIP at $(date)" > test1.txt
kill $(pidof webrtc2sip | awk '{print $1}')
mail -r webrtc2sip@testserver.net -s "ALERT: webRTC2sip multiple processes killed" me@testserver.com < test1.txt
;;
esac

我为此设置了一个 cron,每分钟执行一次 (* * * * */path/to/script)。

现在,我认为正在发生的事情是,第一个案例被反复执行。我不确定,因为 webrtc2sip PID 没有改变,但我每分钟都会收到第一封邮件“警报:webRTC2sip 重新启动”。

我哪里做错了?我应用的逻辑是否有错误?

提前致谢。

最佳答案

我认为 Gurubaran 基本上是对的。我认为根本原因是你的简单 kill 没有终止进程(就像我在测试时发生的那样),所以 webrtc2sip 的运行实例数不会减少。试试 kill -kill 看看是否能解决您的问题。

此外,您的代码每分钟仅处理一个额外的 webrt2cip 实例。这可能会更好:

case "$(pidof webrtc2sip | wc -w)" in

0) echo "Restarting WebRTC2SIP: $(date)" >> /var/log/webrtc2sip.txt
echo "Restarting WebRTC2SIP at $(date)" > test.txt
/opt/webrtc2sip/sbin/webrtc2sip --config=/opt/webrtc2sip/sbin/config.xml &
mail -r webrtc2sip@testserver.net -s "ALERT: webRTC2sip restarted" me@testserver.com < test.txt
;;
1) # all ok
;;
*) echo "Removed multiple WebRTC2SIP: $(date)" >> /var/log/webrtc2sip.txt
echo "Removed multiple WebRTC2SIP at $(date)" > test1.txt
while [ $(pidof webrtc2sip | wc -w) -ne 1 ]
do
kill -kill $(pidof webrtc2sip | awk '{print $1}')
done
mail -r webrtc2sip@testserver.net -s "ALERT: webRTC2sip multiple processes killed" me@testserver.com < test1.txt
;;

esac`

关于linux - Bash - 检查进程是否正在运行,否则启动它并使用 "switch"大小写发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22072425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com