플라스크 애플리케이션을 시스템화하려고 합니다. 나는 다음과 같은 스크립트를 작성하려고 합니다.
#!/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
정적 파일을 찾을 수 없기 때문에 파일 경로가 작동하지 않는 것 같습니다.
그래서 내 질문은 실제로 위 스크립트가 처음에 작동하지 않는 이유입니다. 적용됐는데 cd
venv가 활성화되어 있나요?
답변1
글쎄요, 저도 최근에 이 문제를 겪었는데, 빠른 해결을 위해 다음 코드를 입력했습니다.
#!/bin/bash
source venv/bin/activated
python start.py
bash 쉘 스크립트 xyz.sh
- 저는 에 있습니다 ExecStart
. 어쩌면 이것이 최선의 선택은 아닐 수도 있지만... 제 경우에는 작동합니다.
왜 이것이 작동하지 않습니까?
User
좋습니다. 및 Group
의 정의를 알고 싶습니다 [Service]
. 이것이 없으면 root
사용자를 사용하고 있는 것입니다...때때로 이것이 필요합니다(추가 환경 변수).