gpt4 book ai didi

bash - 从同一个脚本中杀死其他 bash 守护进程

转载 作者:行者123 更新时间:2023-12-04 06:59:10 27 4
gpt4 key购买 nike

我有一段时间试图编写一个“杀死所有其他守护进程”函数以在 bash 守护进程中使用。我不希望一次运行多个守护进程。有什么建议?这就是我所拥有的:

    #!/bin/bash

doService(){
while
do
something
sleep 15
done
}

killOthers(){
otherprocess=`ps ux | awk '/BashScriptName/ && !/awk/ {print $2}'| grep -Ev $$`

WriteLogLine "Checking for running daemons."

if [ "$otherprocess" != "" ]; then
WriteLogLine "There are other daemons running, killing all others."
VAR=`echo "$otherprocess" |grep -Ev $$| sed 's/^/kill /'`
`$VAR`
else
WriteLogLine "There are no daemons running."
fi
}


killOthers
doService

它在某些时候有效,而在其他时候则无效。几乎没有什么是一致的。

最佳答案

如果您 run您的 service under runit — 服务不能 fork 到后台 — 您可以保证只有一个实例在运行。如果它没有运行,或者它退出或崩溃, runit 会启动该服务,如果你问就停止它,并保留一个 pidfile。

关于bash - 从同一个脚本中杀死其他 bash 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2149559/

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