我正在尝试执行一个脚本,该脚本每 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 实例重叠和高资源使用率。
这最终阻止了脚本的执行。
重现修复所需执行的操作:重新启动服务器或终止运行循环脚本的所有剩余进程。