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 인스턴스가 겹치고 리소스 사용량이 높아질 수 있습니다.

이로 인해 궁극적으로 스크립트가 실행되지 않습니다.

수정 사항을 재현하는 데 필요한 조치: 서버를 다시 시작하거나 루프 스크립트를 실행 중인 나머지 프로세스를 모두 종료합니다.

관련 정보