Shell-Script
我正在嘗試執行一個腳本,該腳本每 x 分鐘推送一次 git 作為服務,但 git 使用 100% CPU 和大量 RAM
我正在嘗試執行一個腳本,該腳本每 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 實例重疊和資源使用率高。
這最終阻止了腳本的執行。
重現修復所需的操作:重新啟動伺服器或終止所有執行循環腳本的剩餘程序。