Tech

AWS 연결 종료후에도 동작하는 백그라운드 서비스 만들기

AWS Ubuntu 기준으로 SSH 연결을 종료후에도 실행하던 프로그램이 상시 동작할 수 있도록 백그라운드 서비스 만드는 방법을 정리했습니다.

python등으로 동작하는 프로그램을 만들고 실행하는 것을 확인하였지만 SSH 연결을 종료하면 실행되던 프로그램도 함께 종료되버립니다.

그럼 서비스로 만들어 Background로 실행해야지만 AWS 연결 종료후에도 프로그램 실행이 유지될 수 있습니다.

백그라운드 서비스 파일 작성

서비스 이름만 본인것에 맞춰서 입력하도록 [서비스이름] 이라고 표시하였습니다.

그리고 실행 파일을 [서비스실행파일] 실제 필요한 파일을 입력하면 되는데 Full Path (ex. /home/ubuntu/program/test.py) 로 입력해줍니다.

vi 는 editor로 작성후 저장과 함께 종료시 :wq! 를 적어주면 됩니다.

익숙하지 않으면 다른 editor를 사용하시면 됩니다.

sudo vi /lib/systemd/system/[서비스이름].service

[Unit]
Description=[서비스이름] backend service
After=multi-user.target
Conflicts=getty@tty1.service

[Service]
User=ubuntu
Type=simple
ExecStart=/usr/bin/python3 [서비스실행파일]
StandartInput=tty-force

[Install]
WantedBy=multi-user.target

백그라운드로 서비스 실행하기

첫 시작할때

sudo systemctl start [서비스이름].service

재시작할때

sudo systemctl restart [서비스이름].service

멈출때

sudo systemctl stop [서비스이름].service

시스템을 재부팅시에도 실행되도록 하기

아래와 같이 한번만 실행해놓으면 됩니다.

sudo systemctl enable [서비스이름].service

Leave a Reply