我正在尝试执行一个脚本,该脚本每 x 分钟推送一次 git 作为服务,但 git 使用 100% CPU 和大量 RAM

我正在尝试执行一个脚本,该脚本每 x 分钟推送一次 git 作为服务,但 git 使用 100% CPU 和大量 RAM

我正在尝试执行一个脚本,该脚本每 x 分钟推送一次 git 作为服务,但 git 使用 100% CPU 和大量 RAM,而似乎什么也没做。 (8分钟后我查看了一下,还在继续)

当我手动执行脚本时,它运行得很好,只需要几秒钟。

备份ToGit.sh:

#!/bin/bash
cd /home/pi/<Projectfolder>
cat /root/.ssh/id_rsa.pub
while true
do
        git add *
        git commit -m "auto backup"
        echo "------------Starting to push to Github------------"
        git push [email protected]:JustLokust/<Projectname> master
        echo "------------Finished pushing to Github------------"
        sleep 300
done

服务:

[Unit]
Description=<Service Name>

[Service]
WorkingDirectory=/home/pi/<Projectfolder>
ExecStart=/home/pi/<Projectfolder>/backupToGit.sh

[Install]
WantedBy=multi-user.target

答案1

我想我刚刚在@OlivierDulac 的帮助下找到了解决方案:

该服务仅设置为启动将无限循环运行的脚本,但绝不会停止该脚本。这可能会导致每次启动/重新启动服务时脚本都会运行一次,从而导致 git 实例重叠和高资源使用率。

这最终阻止了脚本的执行。

重现修复所需执行的操作:重新启动服务器或终止运行循环脚本的所有剩余进程。

相关内容