매 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 인스턴스가 겹치고 리소스 사용량이 높아질 수 있습니다.
이로 인해 궁극적으로 스크립트가 실행되지 않습니다.
수정 사항을 재현하는 데 필요한 조치: 서버를 다시 시작하거나 루프 스크립트를 실행 중인 나머지 프로세스를 모두 종료합니다.