What I Do/자주 찾는 내용

ubuntu service 등록 하기 (flask service 등록 하기)

1Millisecond 2022. 11. 7. 00:50

서비스 생성은 2가지만 하면 된다.

1. /etc/systemd/system 아래 아래와 같은 내용으로 파일을 생성함.

파일  이름은 : 서비스_이름.service 로 하면 보기 좋다.

Unit]
Description=discription! # 여기에 서비스에 대한 설명

[Service]
PIDFile=/run/service_name.pid #service_name 쓰세요.
User=user # user id 로 변경
ExecStart=/home/user/anaconda3/envs/flask/bin/python /home/user/workspace/flask_web.py
WorkingDirectory=/home/user/workspace/
# Restart=on-failure # 실패 시 재시작을 자동으로 하려면 주석을 해제

[Install]
WantedBy=multi-user.target

주석에 맞게 수정한 뒤 파일을 서비스 이름으로 생성하면 된다.

ExecStart 는 실행을 위한 command를 그대로 쓰면 된다.

나는 anaconda로 가상 환경을 이용하여 파이썬 파일을 실행하였다.

 

2. 데몬 등록 후 실행

위에서 파일을 생성하였으면 아래를 실행해준다.

서비스_이름은 위해서 생성한 것으로 하면된다.

sudo systemctl daemon-reload
sudo systemctl enable 서비스_이름.service
sudo systemctl start 서비스_이름.service

잘 실행되었는지는 아래 명령어...

sudo systemctl status 서비스_이름.service

이외 쓸만한 명령어는 아래와 같다.

# 서비스 재시작
sudo systemctl restart 서비스_이름.service

# 서비스 로그 보기
sudo journalctl -u 서비스_이름 

# 에러 로그 보기
sudo journalctl -xe

# 부팅 로그
sudo journalctl -b
 
# 오늘 로그 또는 특정 시간
sudo journalctl --since=today
sudo journalctl --since "1 hour ago"
sudo journalctl --disk-usage

 


jupyter 도 동일하다. 나중에 내 기억을 위해서 남겨 둔다.

user@user-ubuntu:/etc/systemd/system$ cat jupyter.service 
[Unit]
Description=Run Jupyter Lab 

[Service]
Type=test
PIDFile=/run/jupyter.pid
User=user
ExecStart=/home/user/anaconda3/envs/my_test/bin/jupyter lab --notebook-dir=/home/user/workspace
WorkingDirectory=/home/user/workspace

[Install]
WantedBy=multi-user.target