Shell-Script

我正在嘗試執行一個腳本,該腳本每 x 分鐘推送一次 git 作為服務,但 git 使用 100% CPU 和大量 RAM

  • January 2, 2021

我正在嘗試執行一個腳本,該腳本每 x 分鐘推送一次 git 作為服務,但是 git 使用 100% CPU 和大量 RAM,而似乎什麼也沒做。(我在 8 分鐘後檢查,它仍然在進行)

當我手動執行腳本時,它可以完美執行,只需幾秒鐘。

backupToGit.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 git@github.com: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

我想我只是在@OlivierDulac 的幫助下自己找到了解決方案:

該服務僅設置為啟動將在無限循環中執行的腳本,但從不停止腳本。這可能導致腳本在我每次啟動/重新啟動服務時多執行一次,導致 git 實例重疊和資源使用率高。

這最終阻止了腳本的執行。

重現修復所需的操作:重新啟動伺服器或終止所有執行循環腳本的剩餘程序。

引用自:https://unix.stackexchange.com/questions/627227