gpt4 book ai didi

linux - 如何在 Linux 后台终止作业调度程序?

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:12 24 4
gpt4 key购买 nike

我有一个作业调度程序 bash shell 脚本,其中包含以下代码:

for (( i=0; i<$toBeDoneNum; i=i+1 ))
do
while true
do
processNum=`ps aux | grep Checking | wc -l`
if [ $processNum -lt $maxProcessNum ]; then
break
fi
echo "Too many processes: Max process is $maxProcessNum."
sleep $sleepSec
done
java -classpath ".:./conf:./lib/*" odx.comm.cwv.main.Checking $i
done

我在后台运行这样的脚本:

./dispatcher.sh &

我想用kill -9 终止这个调度程序进程。但我第一时间没有记录dispatcher进程的pid。相反,我使用 jobs 来显示所有过程,但它什么也没显示。即使这个 fg 也无法将进程带到前台。

fg
bash: fg: current: no such job

但是我认为这个调度程序进程仍在运行,因为它仍然继续分配java程序运行。我应该如何终止这个作业调度程序 bash shell 脚本进程?

编辑:我使用了 jobs、jobs -l、jobs -r 和 jobs -s。什么也没显示。

最佳答案

创建包含内容的test.sh

sleep 60

然后

jobs -l | grep 'test.sh &' | grep -v grep | awk '{print $2}'

这给了我 Ubuntu 和 OSX 上的进程 ID

你可以将它分配给一个变量,然后杀死它

pid=`jobs -l | grep 'test.sh &' | grep -v grep | awk '{print $2}'`
kill -9 $pid

关于linux - 如何在 Linux 后台终止作业调度程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21083027/

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