终止使用 sudo 执行的进程,而不在 Kill 命令中使用 sudo

终止使用 sudo 执行的进程,而不在 Kill 命令中使用 sudo

所以我有一台服务器,并且我可以访问 sudo 只做一件事:运行一个白名单脚本(我将其称为目标脚本)。我无权访问 sudo 任何其他东西。问题是,这个脚本随机停止,需要有人不断重新启动它,这很烦人。我创建了下面的脚本(我将其称为保姆脚本)来自动执行此操作。简而言之,它同时运行脚本的 2 个并行实例,如果它们停止,则将它们重新启动最多 5 次。

这一切都很好,只是我现在无法找到停止目标脚本的方法。当我直接从终端运行它时,我可以按 Ctrl+C 来终止它。然而,现在它是由保姆脚本启动的,我不知道如何杀死它。例如,假设我想在以下脚本的底部放置一些内容,以便在目标脚本运行 5 秒后终止它们的两个实例。

我尝试过各种kill命令pkill,但似乎没有办法在不运行 sudo 的情况下杀死 sudokill进程pkill。作为解决方法,我一直在尝试各种方法来前台目标脚本,fg以便我可以手动按 Ctrl+C,但我似乎无法找到一种方法来前台在 bash 脚本中启动的进程。

我有能力修改我的保姆脚本,但不能修改目标脚本。有什么办法杀死目标脚本吗?

保姆脚本:

echo "ENTER YOUR PASSWORD:"
read -s PASSWORD  

COUNTOUTER=1
while [ $COUNTOUTER -le 2 ]; #Create 2 parallel processes
do
    (
        COUNTINNER=1
        while [ $COUNTINNER -le 5 ]; #Restart the target script up to 5 times 
        do
            echo $PASSWORD | exec sudo -S ./test.sh > process1.log & 
            wait $!
            ((COUNTINNER++))
        done
    )&
    ((COUNTOUTER++))
done

sleep 5

# I want to do something here to kill the target processes

相关内容