가상 환경을 시작하고 활성화하기 위한 systemd 스크립트가 적용되지 않습니다.

가상 환경을 시작하고 활성화하기 위한 systemd 스크립트가 적용되지 않습니다.

플라스크 애플리케이션을 시스템화하려고 합니다. 나는 다음과 같은 스크립트를 작성하려고 합니다.

#!/bin/bash
cd /path/to/app
source venv/bin/activate
python start.py

.service 파일에서 이 스크립트를 실행하면 됩니다. 하지만 서비스를 시작할 때 오류가 발생하기 때문에 이것이 완전히 작동하지 않습니다.

파이썬: 명령을 찾을 수 없습니다

실제로 많은 문제가 있었지만 마침내 서비스 파일로 해결했습니다.

[Service]
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/venv/bin/python start.py

그렇지 않은 경우 WorkingDirectory정적 파일을 찾을 수 없기 때문에 파일 경로가 작동하지 않는 것 같습니다.

그래서 내 질문은 실제로 위 스크립트가 처음에 작동하지 않는 이유입니다. 적용됐는데 cdvenv가 활성화되어 있나요?

답변1

글쎄요, 저도 최근에 이 문제를 겪었는데, 빠른 해결을 위해 다음 코드를 입력했습니다.

#!/bin/bash

source venv/bin/activated
python start.py

bash 쉘 스크립트 xyz.sh- 저는 에 있습니다 ExecStart. 어쩌면 이것이 최선의 선택은 아닐 수도 있지만... 제 경우에는 작동합니다.

왜 이것이 작동하지 않습니까?

User좋습니다. 및 Group의 정의를 알고 싶습니다 [Service]. 이것이 없으면 root사용자를 사용하고 있는 것입니다...때때로 이것이 필요합니다(추가 환경 변수).

관련 정보